Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6462 / 76734 ←次へ | 前へ→

【75873】Re:Range object をFunctionに引渡す処理について
発言  マナ  - 14/7/20(日) 10:13 -

引用なし
パスワード
   ついでに、質問の件と違うところについて。

Rngは"Sheet1"のE列ですよね
つまり、Rngは、shtとRetuに関する情報を持っているので

>Function Comb(sht As Worksheet, Rng As Range, Retu As Integer)

は、

Function Comb(Rng As Range)

でも大丈夫なはず。
修正してみました。例えば、こんな感じで。

Function Comb(Rng As Range)
  Dim jyufuku As Integer
  Dim i As Integer
   
  For i = Rng.Count To 2 Step -1
    '2020についてはダブリの心配なし?
    jyufuku = WorksheetFunction.CountIf(Rng, Rng(i).Value)
    If jyufuku > 1 Then
      Rng(i).Delete Shift:=xlUp
    End If
  Next

End Function


そうすると、Sub Comb入力()の方は、
これだけでもよい気がします。

Sub Comb入力()
  Dim Rng As Range
  Const Retu = "E"

  With Workbooks("Bookname.xls").Worksheets("Sheet1")
    Set Rng = .Range(.Cells(4, Retu), .Cells(65536, Retu).End(xlUp))
  End With
  Rng(Rng.Count + 1).Value = 2020
  Comb Rng

End Sub

で、こうすると、Rngにセットする際に、シート指定しているだけですが、
あとは、すべてRngを使っているので、どのシートがactiveかを気にする必要もなくなります。

17 hits

【75860】Range object をFunctionに引渡す処理について Aoba 14/7/19(土) 11:37 質問
【75861】Re:Range object をFunctionに引渡す処理に... マナ 14/7/19(土) 12:02 発言
【75862】Re:Range object をFunctionに引渡す処理に... Aoba 14/7/19(土) 12:36 質問
【75863】Re:Range object をFunctionに引渡す処理に... マナ 14/7/19(土) 13:22 発言
【75867】Re:Range object をFunctionに引渡す処理に... kanabun 14/7/19(土) 20:31 質問
【75871】Re:Range object をFunctionに引渡す処理に... Aoba 14/7/20(日) 9:51 お礼
【75872】Re:Range object をFunctionに引渡す処理に... マナ 14/7/20(日) 10:08 発言
【75873】Re:Range object をFunctionに引渡す処理に... マナ 14/7/20(日) 10:13 発言
【75874】Re:Range object をFunctionに引渡す処理に... Aoba 14/7/20(日) 11:48 お礼

6462 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free