
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ごめんなさい。
No.2でウソついちゃいましたm(_ _)m
EXCEL VBAにはファイルの選択ダイアログを表示して選択したファイルを開いてくれるメソッドがありました。
Application.FindFile
で、開かれたBookを捕まえるには
Set xlBook = Application.ActiveWorkbook
あとはNo.2と同様で。
それと、ファイルの選択ダイアログでキャンセルしたかどうかはApplicatio.FindFileの戻り値がBooleanで返るのでFalseの時はキャンセルされたとして処理しないようにすれば良いでしょう。
説明下手なんで、ソース書きます。
Private Sub Command1_Click()
Dim ret As Boolean
Dim xlBook As Workbook
Dim xlSheet As Worksheet
'ファイル選択
ret = Application.FindFile
'Falseだったらキャンセルされたので処理中止
If Not ret Then Exit Sub
'開いたBookを捕まえる
Set xlBook = Application.ActiveWorkbook
'この下にシート一覧を表示する処理を書く。
End Sub
お答えいただいたまま、ずっと連絡せずにすみません。
パソコンが死んでおりました。。。
超初心者の私にでも、非常にわかりやすいお答えをありがとうございました。またよろしくお願いいたします。
No.2
- 回答日時:
たぶん質問者さんは、次のことをしたいという事だと思いました。
1.ファイルを開くダイアログを表示して実行時にEXCELファイルを選択する。
2.ダイアログで1で選択したEXCELが持つシートの一覧を表示して、その中からユーザがシートを選択する。
3.2で選択したシートを現在のブックのシート1にコピーする。(え?コピー?既に存在するシートに内容をコピーじゃなきゃダメ?)
1.はVBAの場合は標準では多分ムリ。
APIを使う事になると思います。
「GetOpenFileName」
というAPIの使い方を調べて下さい。
2は、
Dim xlBook As WorkBook
set xlBook = WorkBooks.Open(1で選択したファイルパス)
Dim xlSheet as WorkSheet
Combo1.Clear
For Each xlSheet In xlBook.WorkSheets
Combo1.AddItem xlSheet.Name
Next
でコンボボックスCombo1にシート名が全部入ります。
ユーザに選んでもらいましょう。
お好みでコンボボックスじゃなくてリストボックスでも可。
その後、OKボタンを押したタイミングか何かで、
No1の方が3で説明されているように現在のBookにコピー(挿入)してください。
No.1
- 回答日時:
>1.ファイルの選択
Workbooks.Open FileName="C:??????"
上のようにして、ファイルを開くことが出来ます。
注意点として、ファイル名はフルパス(ドライブ名:フォルダー名、ファイル名)で、指定しなければなりません。エクスプローラーで読み込もうとするファイルを選択し、プロパティーを表示させると 場所:にドライブ名とフォルダー名が表示されますので、これをコピーしファイル名を "\****.xls"と指定します。
>2.シート名を選択する
Sheets("シート名").Activate
で、シートを選択します。
>3.現在のブックのSheet1にコピーする。
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1)
で、コピー出来ますが、Sheet1にコピーされるのではなく、Sheet1の前にシートを挿入する形になります。
この後、ファイルを閉じて、現在のブックをアクティブにします。アクティブにしないで終わると、うまくいかなかったと思います。
ActiveWorkbooks.close
Thisworkbook.Activate
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) エクセルマクロ初心者です aブックからbブックの転記がしたいのですがbブックのシートを指定するコード 5 2023/03/15 17:09
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) Outlook VBAについて 1 2023/07/10 12:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
Vba初心者です。下記のコード助...
-
エクセルのハイパーリンクがコ...
-
ファイルサーバ上のファイルが...
-
[エクセル]コピーするとオブジ...
-
同じファイル名 上書きしないフ...
-
エクセルVBAでファイル・シート...
-
xcopyでのバッチコピー方法でコ...
-
指定した時間になったらファイ...
-
マインクラフトPCをプレイしよ...
-
MSオフィス2013にMS365が上書き...
-
frxファイルの役目
-
ハイフネーションされている英...
-
エクセル2010、図が大きすぎま...
-
バッチファイル 別ファイルにリ...
-
バッチファイルのコピーで
-
エクセル 同じデータなのに違う...
-
ActiveXコンポーネントを使用し...
-
エクセルVBAで全てのサブフォル...
-
DOSコマンドのコピー完了判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
エクセルのハイパーリンクがコ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
同じファイル名 上書きしないフ...
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイル 別ファイルにリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
DOSコマンドのコピー完了判定
-
FTPとファイルコピーの違いにつ...
-
vbsでファイルやフォルダのコピ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
vbsでExcelのシートをコピーす...
-
共有フォルダへのフォルダ作成...
おすすめ情報