- ベストアンサー
ActiveWorkbookを変数に格納する場合
こんにちは、ActiveWorkbookを変数に格納する場合の処理について教えてください!下記の処理を実行したのですが、「型が一致しません」というエラーが出てうまくいきませんでした。 初歩的な質問で申し訳ないのですが、何が悪いのかご教示いただけると大変嬉しいです・・・!どうぞよろしくお願いいたしますm(_ _)m Dim AW As Object Set AW = Activeworkbook Workbooks(AW).WorkSheets("Sheet1").Select
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
AWはオブジェクトなのでそのまま AW.WorkSheets("Sheet1").Select としてください。
その他の回答 (5)
- masnoske
- ベストアンサー率35% (67/190)
Dim AW As Object Set AW = ActiveWorkbook AW.Worksheets("Sheet1").Select で良いのでは?
お礼
変数で指定する場合とワークブック名で指定する場合を正しく理解できていませんでした、ご回答いただきありがとうございました(*'▽')
- kkkkkm
- ベストアンサー率66% (1719/2589)
No3です。 > AWはオブジェクトなのでそのまま 誤解をされそうな書き方(オブジェクトそのものと言ってることになりました)なので訂正します。 AWは「Setしたオブジェクトそのものとして扱える変数」なのでそのまま
お礼
なるほど!了解いたしました、ありがとうございます(*'ω'*)4名同じコードをご回答いただいていてうまくいったので、どのかたをベストアンサーにするかすごく迷いましたが、ご回答順にさせていただこうと思うので、ベストアンサーとさせていただきます!
- imogasi
- ベストアンサー率27% (4737/17069)
Set AW = Activeworkbook、はオブジェクトそのもので、ブックの名前文字列ではありません。そこを勘違いされている。 質問の路線で行くなら Sub test01() Dim bkn As String bkn = ActiveWorkbook.Name MsgBox bkn Workbooks(bkn).Worksheets("Sheet2").Range("A2") = "”東京" End Sub ーー WorkWbookの指定は (1)名前で (2)インデクス番号で (3)Activeなどで指定・ThisWorkbookで指定 (4)オブジェクトで (5)極く特殊な例で 上位オブジェクトで .Parent. Sub test02() Dim str As String bkn = ActiveWorkbook.Name MsgBox bkn Workbooks(bkn).Worksheets("Sheet4").Range("A2") = "東京" MsgBox ActiveSheet.Parent.Name End Sub 参考 https://www.239-programing.com/excel-vba/basic/basic084.html ーー 質問の路線では、 AW.WorkSheets("Sheet1").Select でよい。
お礼
ブック名を入れるときはWorkbooks()で、変数の場合はそのままですね!ご回答いただいてありがとうございます('ω')参考資料もありがとうございます、マクロが組み込まれたブックがThisWorkbookで指定できるのは知らなかったです!まだまだ勉強不足ですね…。
- kon555
- ベストアンサー率51% (1842/3559)
よほど複雑な処理するとかでない限り、型の宣言はなしでいいと思いますよ。 あと「Workbooks(AW)」が違います。 Sub tes() Dim AW Set AW = ActiveWorkbook AW.Worksheets("Sheet1").Select End Sub でどうぞ
お礼
バリアント型でもいけるんですね( ゜Д゜)確かにいちいち型を調べるの面倒なので宣言しなくていいなら楽です、ありがとうございます!
- oboroxx
- ベストアンサー率40% (317/792)
AWの変数の宣言がダメです。 Dim AW As Worksheet です。
お礼
ありがとうございます!しかしご提示いただいたコードで試しましたがなぜかうまくいきませんでした( ;∀;)
お礼
ありがとうございます!変数のみでよかったのですね…!変数のみでも一度試したのですが、その時はWorkSheetsの部分が間違ってたみたいで、ご提示いただいたものでうまくいきました!!(^^)!