
エクセル VBAで、
「業者コードを入力すると、業者の名前と電話番号を表示してくれる。」
というVBAを、本を見ながら作ったのですが、(下にコピペしました↓)
これだと業者コードが増える度、VBAに入力していかなければならないことに。
業者さんはどんどん増えていくので、追いつかなく困っています。
iを使ったり応用しようとしましたが、自力ではどうも無理なのです。
初めてなので、説明不足でしたらすみません。
どうかお願いします!
------------------------------------------------------------
Sub 業者コードから入力()
'
Dim getstr As String
Dim msg As String
Dim title As String
Set ws1 = Worksheets("データ")
Set ws2 = Worksheets("業者コード")
Set ws3 = Worksheets("通知書")
msg = "業者コードを入力してください"
title = "コード入力"
getstr = InputBox(msg, title)
getstr = UCase(getstr)
Select Case getstr
Case "00"
ws3.Range("d6") = ws2.Range("e7")
ws3.Range("d9") = ws2.Range("i7")
ws3.Range("q9") = ws2.Range("j7")
Case "01"
ws3.Range("d6") = ws2.Range("e8")
ws3.Range("d9") = ws2.Range("i8")
ws3.Range("q9") = ws2.Range("j8")
Case "02"
ws3.Range("d6") = ws2.Range("e9")
ws3.Range("d9") = ws2.Range("i9")
ws3.Range("q9") = ws2.Range("j9")
Case "03"
ws3.Range("d6") = ws2.Range("e10")
ws3.Range("d9") = ws2.Range("i10")
ws3.Range("q9") = ws2.Range("j10")
Case "04"
ws3.Range("d6") = ws2.Range("e11")
ws3.Range("d9") = ws2.Range("i11")
ws3.Range("q9") = ws2.Range("j11")
Case "05"
ws3.Range("d6") = ws2.Range("e12")
ws3.Range("d9") = ws2.Range("i12")
ws3.Range("q9") = ws2.Range("j12")
Case Else
MsgBox "エラーです"
End Select
End Sub
------------------------------------------------------------
No.2ベストアンサー
- 回答日時:
Sub 業者コードから入力()
Dim getstr As String
Dim msg As String
Dim title As String
Dim iRange As Integer
Set ws1 = Worksheets("データ")
Set ws2 = Worksheets("業者コード")
Set ws3 = Worksheets("通知書")
msg = "業者コードを入力してください"
title = "コード入力"
getstr = InputBox(msg, title)
getstr = UCase(getstr)
iRange = Int(getstr) + 7
'コードを数値化しています
'00が7行目のデータのようなので7を足しています
ws3.Range("d6") = ws2.Range("e" & iRange)
ws3.Range("d9") = ws2.Range("i" & iRange)
ws3.Range("q9") = ws2.Range("j" & iRange)
End Sub
-------------------------------------------------
ws3.Range("d6") = ws2.Range("e7")
ws3.Range("d9") = ws2.Range("i7")
ws3.Range("q9") = ws2.Range("j7")
を見ると左辺のRange("d6")Range("d9")Range("q9") は固定で
右辺のセルの数値が上がっているのでそこの部分を変数で置き換えてみてはいかがでしょうか?
上記ではiRangeというInteger型の変数でおいてみました。
こんな感じでいけるのではないでしょうか?
できました!!
わあああ、ありがとうございます!!!
変数もっと勉強しまする。。
こんなに早く解決するとは、、
とても助かりました。ありがとうございました。
No.1
- 回答日時:
前提条件
1行に事業者のデータがおさまっていること。
余分なデータが入っていないこと。
-----------------------------------------------------------
Dim intMaxRow As Integer
Dim intIndex As Integer
'データが入力されている最後の行を検索
intMaxRow = ActiveSheet.UsedRange.End(xlDown).Row
For intIndex = 1 To intMaxRow
'事業者番号検索を抜ける条件(空白のセルが見つかったら)
If Sheet2.Cells(intIndex, 1) = "" Then
Exit For
End If
If getstr = Sheet2.Cells(intIndex, 0) Then
'ここに一致した場合の処理
End If
Next
-----------------------------------------------------------
For文の1は開始行です。
Cellsの引数になっている1は列番号です。
コードから推測するにFor文の1を7に、Cellsの引数の1を5にすればいけると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) エクセルVBA 3 2022/06/23 20:00
- Excel(エクセル) 列の最終行に新たに入力されたらその値を自動参照 1 2023/01/21 09:59
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Visual Basic(VBA) いつもお世話になります 下記のコード実行すると エラーになります わかるかた教えてくれませんでしょう 6 2022/12/17 15:01
- Visual Basic(VBA) Excelのマクロについて教えてください。 3 2022/06/30 09:36
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで英数大文字のみの入...
-
認証コードが入力できない(同...
-
マンション名のローマ数字入力...
-
Excelが勝手に閉じてしまって困...
-
キーボードアプリの会社が収集...
-
エクセルVBAでTargetのセルに設...
-
エクセル 時間を.(ドット)で...
-
inputとenterの違い
-
左向きにエクセルで作成され申...
-
ACCESSでNumLockがONの時データ...
-
gnuPGでパスフレーズが入力でき...
-
初歩的なことなんですが。produ...
-
直接入力でアルファベットが大...
-
Apple IDの作成ができない。「...
-
某信用金庫の通帳アプリ
-
ifで10個以上の条件判断がしたい
-
【キーボード】母音しか打てない…
-
Windows10。背面にあるウィンド...
-
エクセルで10進法から60進法に...
-
エクセルマクロ セルをクリック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで英数大文字のみの入...
-
マンション名のローマ数字入力...
-
認証コードが入力できない(同...
-
エクセルVBAでTargetのセルに設...
-
左向きにエクセルで作成され申...
-
Apple IDの作成ができない。「...
-
Excelが勝手に閉じてしまって困...
-
エクセル 時間を.(ドット)で...
-
inputとenterの違い
-
初歩的なことなんですが。produ...
-
タブレットPC文字入力の方法に...
-
VLOOKUP関数で返した値(カタカ...
-
Excel 対象のセルに入力が無い...
-
Excelにて入力済セルへの再入力...
-
teratermでユーザー変更したい
-
エクセルで音声入力がしたい。
-
エクセルVBA、入力しないと閉じ...
-
コマンドプロンプト表示が一瞬...
-
キーボードアプリの会社が収集...
-
VBAで変数が使いこなせなく...
おすすめ情報