- ベストアンサー
エクセルVBAの変数利用
シートのC1セルに入力したブック名をアクティブにするための 変数なのですが、アクティブになりません。 下のようにしていますが、とのようにすればよいでしょうか? Sub test() Dim FileName As Range FileName = ThisWorkbook.Path & "\" & Sheets("sheet1").Range("C1") & ".xls" Workbooks.FileName.Activate End Sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>Dim FileName As Range ↓では? Dim FileName As String
その他の回答 (3)
No.2です。 間違いがあったので訂正です。 Workbooksはオブジェクトではなくコレクションです。
お礼
こんにちは。#1さんと同じ内容ですが ↓こうでしょうか? うまくいきません・・・。 オブジェクト変数または With ブロック変数が設定されていません。 となります。 Dim FileName As Range FileName = Sheets("sheet1").Range("C1").Value & ".xls" Workbooks(FileName).Activate
こんにちは。 アクティブにならないと言うより、コンパイルエラー等のエラーになりませんか? WorkbooksオブジェクトにFileNameと言うプロパティはありません。 ファイル名はWorkbooksオブジェクトに引数として渡してください。 このようになります。 Workbooks(FileName).Activate どうでしょうか。
- marbin
- ベストアンサー率27% (636/2290)
↓では? FileName = Sheets("sheet1").Range("C1").Value & ".xls" ブックを開くのではなく、開いているブックをアクティブにするだけですよね?
お礼
こんにちは。↓こうでしょうか? うまくいきません・・・。 オブジェクト変数または With ブロック変数が設定されていません。 となります。 Dim FileName As Range FileName = Sheets("sheet1").Range("C1").Value & ".xls" Workbooks(FileName).Activate
お礼
ありがとうございました。できました。ここなんですね! でも基本中の基本なのですが、RangeやStringってまだピンと こないです・・・・。