こんにちは。
現在VBAの学習をしているものです。現在、VBAの学習を自分でソースコードを書くことで行っています。
学習をしていく中で、とあることを実現しようと試みているのですが、調べても出てこないためここに質問をさせてください。
どうぞよろしくお願いいたします。
###実現したいこと
Aのエクセルマクロを起動し、Bというブックに処理を行いたい
具体的には
①こちらのシート(A)でまず、「ファイルの選択」ボタンを押下して実行したいエクセルを選択します。
②続いて、「実行」ボタンを押下します。
③実行ボタンを押下すると、こちらのシート(B)のほうで以下の処理を行います。
maxRow = Cells(Rows.Count, 1).End(xlUp).Row Dim i As Long 'ループ処理用の変数 '行数分、計算結果を書き込む処理を実行 For i = 2 To maxRow If Month(Range("A" & i).Value) = Month(Date) - 1 And Range("C" & i).Value = "高橋" Then Worksheets("Sheet1").Range("D" & i).Value = "〇" End If Next i
長々と書きましたが、要は1枚目の写真のエクセルで2枚目の写真の「タスク管理表」を「選択」し、選択したうえで「実行」ボタンを謳歌すれば「タスク管理表」のD2セルに「〇」がつく状態を実現したいと試行錯誤しています。
知恵を貸していただけると嬉しいです。
どうぞよろしくお願いいたします。
###私のソースコード(実行ボタンのマクロになります)
Sub 実行() Workbooks.Open (b2) maxRow = Cells(Rows.Count, 1).End(xlUp).Row Dim i As Long 'ループ処理用の変数 '行数分、計算結果を書き込む処理を実行 For i = 2 To maxRow If Month(Range("A" & i).Value) = Month(Date) - 1 And Range("C" & i).Value = "高橋" Then Worksheets("Sheet1").Range("D" & i).Value = "〇" End If Next i End Sub
課題(困っていること)は何でしょうか? また「調べても出てこないため」とありますが、どのように調べましたか?
困っていること
→選択したシートに対して処理を行いたいが行えない
調べても出てこない
→「エクセル マクロ 別ブック 実行」「VBA 別ブック 参照」あたり
> →選択したシートに対して処理を行いたいが行えない
具体手にはどういうことでしょうか? 何かエラーは出ますか? マクロの動作は完了するが「○」が記入されない、ということでしょうか?
Workbooks.Open (b2)
で処理が止まってしまいますね、、、
私の想定では、
Workbooks.Open (b2)
にてマクロを実行したいファイルを呼び出し、
maxRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim i As Long 'ループ処理用の変数
'行数分、計算結果を書き込む処理を実行
For i = 2 To maxRow
If Month(Range("A" & i).Value) = Month(Date) - 1 And Range("C" & i).Value = "高橋" Then
Worksheets("Sheet1").Range("D" & i).Value = "〇"
End If
Next i
の処理を実行できたらと思っております。
> で処理が止まってしまいますね、、、
具体的なエラーメッセージを書くと回答がつきやすくなります。回答者は質問に書いてあることから原因を推定しますので。
「Workbooks.Open (b2)」で"b2"は変数ですね。型が不明ですが、この変数の値が正しいパスになっていないかと思われます。
ご指摘ありがとうございます。次回以降「試してみたこと」も質問に盛り込みたいと思います。
ファイルパスは間違っていないはずなのですが、、、、コピペしたので、、、、ありがとうございます。
回答1件
あなたの回答
tips
プレビュー