No.1ベストアンサー
- 回答日時:
If文ならば、
If (セルA1 = "A") Or (セルA1 = "B") Or (セルA1 = "C") Or (セルA1 = "D") Then
となりますが
個人的には、
Stringで1つ変数を定義して、それにセルA1の値を格納。
それをSelect Caseで判定としますね。
(例 : 作業用変数をstrWorkとして)
Dim strWork As String
strWork = セルA1の値
Select Case strWork
Case "A", "B", "C", "D"
Workbooks.OpenText Filename:="C::\Documents and Settings\abc.txt
End Select
回答1行目で目からウロコです(泣
以前からワークシート関数は常用していて、if文とか得意だったのですが先日VBAに手を広げ始めて調べていたら WorksheetFunctionが要るようで変数割り当ての際に以下の様にやってみましたが。。。
R1a = WorksheetFunction.Or(P1a, P1b, P1c, P1d, P1e)
全くダメでxxx ずっと悩んで後回しにしていました。
言われてみれば並べ方の違いだけでANDと同じ感覚で使えそうですね。実際やってみて問題なかったです。
セレクトケースももうすぐ手をつけ始めるところです。
ありがとうございました。
No.3
- 回答日時:
標準モジュールで
Sub test01()
x = Cells(1, "A")
If x = "A" Or x = "B" Or x = "C" Or x = "D" Then
MsgBox "該当"
End If
End Sub
で判るだろう。
ーー
単なる確認テスト用ならSheet1のシートモジュールのChangeイベントで
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
x = Target.Value
If x = "A" Or x = "B" Or x = "C" Or x = "D" Then
MsgBox "該当"
Else
MsgBox "該当外"
End If
End If
End Sub
Sheet1のA1セルに値を入れるとメッセージが出る。
==========
SQLのInというようなのは使えない
ーーー
配列にでもA,B,C,Dを入れて1つずつループで聞いていくとか。
ーーー
エクセルらしく、VLOOKUP関数を使うとか。
"H1:H4"セルにはA,B,C,Dを入れておく。
Sub test02()
Dim y As Variant
For i = 1 To 10
x = Cells(i, "A")
MsgBox x
y = Application.VLookup(x, Range("H1:H4"), 1, False)
If IsError(y) Then
Cells(i, "B") = "NotFound"
Else
Cells(i, "B") = "OK"
End If
Next i
End Sub
回答ありがとうございます。
いろんなパターンで組めるんですね。
大変参考になります。
全て使ってみて教えられるようになりたいと思います。
ありがとうございました。
No.2
- 回答日時:
下記のいずれかで記述して下さい。
Sample_1は、if文内で条件をorでつなぐ方法で
Sample_2は、同じことをselect caseで実現する方法です。
OR使用時のポイントは「work_str = "A" Or "B" Or "C" "D"」とは記述できない点です。
Sub Sample_1()
'
'
Dim work_str As String
'
'--- Sheet1のセルA1の値を、処理用変数(work_str)に代入
work_str = Sheet1.Range("A1").Value
'--- work_strの値をチェック
' "A", "B", "C", "D"のいずれかの場合、指定ファイルをOPENする。
If work_str = "A" Or work_str = "B" Or work_str = "C" Or work_str = "D" Then
Workbooks.OpenText Filename:="C:\Documents and Settings\abc.txt"
Else
' "A", "B", "C", "D"以外の場合、処理なし。
End If
End Sub
Sub Sample_2()
'
'
Dim work_str As String
'
'--- Sheet1のセルA1の値を、処理用変数(work_str)に代入
work_str = Sheet1.Range("A1").Value
'--- work_strの値をチェック
' "A", "B", "C", "D"のいずれかの場合、指定ファイルをOPENする。
Select Case work_str
Case "A", "B", "C", "D"
Workbooks.OpenText Filename:="C:\Documents and Settings\abc.txt"
Case Else
' "A", "B", "C", "D"以外の場合、処理なし。
End Select
End Sub
とても解りやすい回答を2例も、ありがとうございます。
両方とも正常動作を確認しました。
ちなみに、次回このQAを見る初心者の方の為に・・・
= Sheet1.Range("A1").Value
は、このままで動くのでしょうか?
私(初心者)は
= Worksheets("sheet1").Range("A1").Value
に書き換えて実行しましたが、私の書き換えが必要がない
のであればコメント頂ければ後々有用になるかと思います。
上級の方は裏技をお持ちだったりしますので。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Visual Basic(VBA) vba 隣のセルに値がある行だけ関数をコピー&ペーストしたい A1 100001 A2 100002 1 2023/01/28 14:29
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA ドロップダウンリストを残して値のみクリア 2 2022/10/27 05:42
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームに別シートか...
-
現在のブックを閉じないで、マ...
-
【VBA】マクロの入ったファイル...
-
IEの通知バー制御ができなくなった
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA 複数条件の分岐処理の上手...
-
エクセルのマクロについて教え...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
FileCopy時のエラー
-
VBAで各列の"+"と"o"の合計数を...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA listBoxについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコードを教えてください
-
【ExcelVBA】インデックスが有...
-
ExcelVBA シート名を複数セルか...
-
エクセルvbaについて
-
エクセルのマクロについて教え...
-
【VBA】マクロの入ったファイル...
-
VBA UserFormからの転記で
-
エクセルVBAの配列について
-
Excelで「Ctrl+c」、「Ctrl+v...
-
VBAコードについて教えてくださ...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
VBAで質問があります
-
VBAコードについて
-
【ExcelVBA】VBA実行でダイアロ...
-
Excel関数またはVBAでの質問に...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
Outlookの「受信日時」「件名」...
おすすめ情報