![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
【Excel VBA】データ貼り付け先のシート名選択
Excel(エクセル)
-
VBA EXCELファイル選択⇒指定セルコピー
Excel(エクセル)
-
-
4
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
5
VBAで任意のファイルを読み出して貼り付けたい
Excel(エクセル)
-
6
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
7
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
8
【Excel VBA】ファイルとシートを選択してコピーする処理
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイル XCOPYで上書き...
-
frxファイルの役目
-
開いている別のファイルにExcel...
-
同じファイル名 上書きしないフ...
-
Vba初心者です。下記のコード助...
-
ファイルサーバ上のファイルが...
-
最新更新日のBATファイルコピー...
-
バッチファイル 別ファイルにリ...
-
EXCELの書式設定のユーザー定義...
-
エクセルのマクロについて教え...
-
エクセルのハイパーリンクがコ...
-
VB.NET MDB(Access 2002) が...
-
vbsでExcelのシートをコピーす...
-
ExcelVBAでの印刷機能について...
-
エクセル2010、図が大きすぎま...
-
FSO.CopyFileでのエラー無視方法
-
bat 同名ファイルコピー時にリ...
-
VBスクリプトで外字の使用を無...
-
HTA + VBScript (+ Javascript)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
frxファイルの役目
-
エクセルのハイパーリンクがコ...
-
Vba初心者です。下記のコード助...
-
バッチファイルのコピーで
-
バッチファイル XCOPYで上書き...
-
同じファイル名 上書きしないフ...
-
[エクセル]コピーするとオブジ...
-
バッチファイル 別ファイルにリ...
-
エクセル2010、図が大きすぎま...
-
xcopyでのバッチコピー方法でコ...
-
ファイルサーバ上のファイルが...
-
FTPとファイルコピーの違いにつ...
-
FSO.CopyFileでのエラー無視方法
-
パワポでスライドをコピーでき...
-
アクセス クエリを別のファイ...
-
開いている別のファイルにExcel...
-
エクセルVBAで開いているファイ...
-
vbsでExcelのシートをコピーす...
-
マインクラフトPCをプレイしよ...
おすすめ情報