Excel VBA質問箱 IV

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

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


51780 / 76732 ←次へ | 前へ→

【29809】Re:検索表示
発言  ichinose  - 05/10/13(木) 23:51 -

引用なし
パスワード
   ▼sim さん:
>▼ichinose さん:
>できました\(^^)/ありがとうございました。
>
>>VBAをご存知なら、VBAで行う事も検討してみてください。
>
>ちなみにVBAではどのように書くのでしょうか?AccessのVBAは何度か
>
>書いたことがあるのですが・…よろしかったら教えて下さい。
VBAを使用すれば、方法はいくつもありますよ!!

そのひとつとして、

シートのレイアウト等は前回の投稿と同じとします。

当該シートのシートモジュールに

'===========================================================
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim crng As Range
  Dim f_value As Variant
  Dim f_rng As Range
  Dim add1 As String
  Dim add2 As String
  Dim ans As Variant
  Application.EnableEvents = False
  For Each crng In Target
    With crng
     If .Row >= 2 And (.Column = 1 Or .Column = 2) Then
      If datachk(.Row) = True Then
        f_value = Cells(.Row, 1).Value * 10000 + Cells(.Row, 2).Value
        Set f_rng = Range("aa2", Cells(Rows.Count, 27).End(xlUp))
        add1 = f_rng.Address
        add2 = f_rng.Offset(0, 1).Address
        '↓ 一例として match(a2*10000+b2,($AA$2:$AA$8)*10000+$AB$2:$AB$8,0)
        '        こんな配列数式の実行
        ans = Evaluate("match(" & f_value & ",(" & add1 & ")*10000+" & add2 & ",0)")
        If IsError(ans) Then
         MsgBox "not found"
        Else
         Cells(.Row, 3).Value = f_rng.Cells(ans, 3).Value
         End If
        End If
       
       End If
     End With
    Next
  Application.EnableEvents = True
End Sub
'===================================================================
Function datachk(rw As Long) As Boolean
'A列とB列のデータのチェック
'true---- 正常データ
'false---不正データ 又は、データが未完成
  datachk = False
  If Cells(rw, 1).Value = "" Or Cells(rw, 2).Value = "" Then
    Exit Function
    End If
  If IsNumeric(Cells(rw, 1).Value) And IsNumeric(Cells(rw, 2).Value) Then
    datachk = True
  Else
    MsgBox "データが不正です。数値を指定してください"
    End If
End Function


これでA列B列にデータを入力してみてください。
不正データはエラーメッセージを表示するようにしました。
確認してみてください。

1 hits

【29706】検索表示 sim 05/10/12(水) 9:52 質問
【29712】Re:検索表示 Jaka 05/10/12(水) 13:26 発言
【29713】Re:検索表示 sim 05/10/12(水) 14:06 発言
【29743】Re:検索表示 ichinose 05/10/12(水) 22:01 発言
【29757】Re:検索表示 sim 05/10/13(木) 8:49 お礼
【29809】Re:検索表示 ichinose 05/10/13(木) 23:51 発言
【29824】Re:検索表示 sim 05/10/14(金) 12:04 お礼
【29758】Re:検索表示 Jaka 05/10/13(木) 9:15 お礼
【29815】Re:検索表示 ichinose 05/10/14(金) 8:10 発言
【29898】Re:検索表示 gako 05/10/15(土) 21:19 発言

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