Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2010)
VLookup関数で選んだ文字をコメントに入れる
投稿日時: 18/09/27 11:29:19
投稿者: かつのり2

いつもお世話になります。
よろしくお願いします
 
ワークシートのB列、C列に10行ほど文字を入力し、B列の文字を選ぶとC列の文字がE2セルに入力
する事をユーザーフォームから操作したいと思っています。
ユーザーフォームには、ComboBox1とCommandButton1を配置し下記のコードを書きました
ただ、CommandButton1の※印の部分でエラーが発生します?
何か別の書き方があるのでしょうか?
お分かり方がおりましたら教えて下さい
-------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 3 To 15
        If Range("C" & i ).Value = "" Then
            Exit For
        End If
        ComboBox1.AddItem Range("C" & i).Value
    Next i
End Sub
 
Private Sub CommandButton1_Click()
    Dim Com_C As String
    Dim Com_D As Variant
    Com_C = ComboBox1.Value
 ※Com_D = ActiveSheet.Application.WorksheetFunction.VLookup(Com_C, Range("C3:D13"), 2, False)
    Range("E10").Select
    Range("E10").AddComment
    Range("E10").Comment.Text Text:=Com_D
End Sub
------------------------------------------------------------------------------------------------

回答
投稿日時: 18/09/27 12:11:27
投稿者: George

Com_D = ActiveSheet.Application.WorksheetFunction.VLookup(Com_C, Range("C3:D13"), 2, False) 

 
この部分ですが、以下のようにするといけませんか?
Com_D = Application.WorksheetFunction.VLookup(Com_C, ActiveSheet.Range("C3:D13"), 2, False) 

もしうまくいったとしたら理由を考えてみてください。

投稿日時: 18/09/27 13:54:14
投稿者: かつのり2

Com_D = Application.WorksheetFunction.VLookup(Com_C, ActiveSheet.Range("C3:D13"), 2, False) 

 
返答ありがとうございます。
早速、試したのですがやはり下記のエラーが発生します
-------------------------------------------------------------
実行時エラー '1004'
WorksheetFunctionクラスのVLookupプロパティを取得できません。
-------------------------------------------------------------
エラーの理由とともに考えてみます。
ありがとうございます。

回答
投稿日時: 18/09/27 14:37:07
投稿者: Suzu

条件に合致するデータが無い場合にも 同じメッセージが出ます。
 
渡しているのは 「文字列」です。
被検索対象が、数字の場合 は、合致しませんが 宜しいでしょうか。

回答
投稿日時: 18/09/27 14:40:28
投稿者: George

引用:

早速、試したのですがやはり下記のエラーが発生します

Vlookup関数の第1引数が数値か日付の場合はエラーになります。
おそらく Vlookup エラー などで検索するとたくさん記事が出てきます。

投稿日時: 18/09/27 16:15:56
投稿者: かつのり2

Georgeさん、Suzuさん 回答ありがとうございます
 
C列の数字を文字に変更したら正常に動きました
最初の「Dim Com_C As String」に従うのですね、
Integerだと数字で動きました。
Variantではダメなんですね・・・
 
ありがとうございました。