- 締切済み
VBAでファイルをコピー
Aというフォルダの配下に、B,Cというフォルダがあります。 Bには、b1ファイルとb2ファイルがあり、 Cには、c1ファイルがあります。 Aフォルダにa1ファイルをおき、a1ファイル内にある ボタンを押すと、Bフォルダのb1ファイルとb2ファイル Cフォルダのc1ファイルをすべてAフォルダ直下にコピーする ようにするにはどうすればいいでしょうか? dosコマンドで実行するようにはできるかと思いますが vbaでやる方法を教えて下さい。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- DOUGLAS_
- ベストアンサー率74% (397/534)
>dosコマンドで実行するようにはできるかと思いますが >vbaでやる方法を教えて下さい。 「dosコマンド」は自力でできそうなので、それとは別に エクセル の マクロ でやりたい というような意味ですか? でしたら、ザクッとした説明ですが、下記のようなことかと。。。 【下準備】 1)[Alt] + [F11] キー を押下して、[VBE(Visual Basic Editor)] を開きます。 2)[挿入(I)] - [標準モジュール(M)] で コードウィンドウ を開きます。 3)現われた コードウィンドウ に下記を コピペ します。 '-- ここから ---------------------------------------------------- Sub Macro1() Dim myPath As String myPath = ThisWorkbook.Path & "\" FileCopy myPath & "B\b1.xls", myPath & "b1.xls" FileCopy myPath & "B\b2.xls", myPath & "b2.xls" FileCopy myPath & "C\c1.xls", myPath & "c1.xls" End Sub '-- ここまで ---------------------------------------------------- 4)[Alt] + [F4] で [VBE] を閉じます。 【ボタン への マクロ の登録】 ●「a1ファイル内にあるボタン」が「オートシェープ」または「フォーム の コマンド ボタン」のとき 1)「ボタン」を 右クリック - [マクロの登録(N)...] を クリック します。 2)[マクロの登録] ダイアログ の一覧で「Macro1」を クリックし、[マクロ名(M):] の下の ボックス に「Macro1」と表示されたのを確認して、[OK] します。 ●「a1ファイル内にあるボタン」が「コントロール ツールボックス の コマンド ボタン」のとき 1)「コントロール ツールボックス」の「デザイン モード」を クリック します。 2)「ボタン」を 右クリック - [コードの表示(V)] を クリック します。 3)現われた Private Sub CommandButton1_Click() End Sub というような コード の間に、上記の「Dim myPath As String」以下の5行を コピペ し、最終的に下記のようになるようにします。 '-- ここから ---------------------------------------------------- Private Sub CommandButton1_Click() Dim myPath As String myPath = ThisWorkbook.Path & "\" FileCopy myPath & "B\b1.xls", myPath & "b1.xls" FileCopy myPath & "B\b2.xls", myPath & "b2.xls" FileCopy myPath & "C\c1.xls", myPath & "c1.xls" End Sub '-- ここまで ---------------------------------------------------- ただし、「CommandButton1」の部分は、(2) で 右クリック した ボタン によって変わります。 4)[Alt] + [F4] で [VBE] を閉じます。 5)「コントロール ツールボックス」の「デザイン モードの終了」を クリック します。 【a1ファイル内にあるボタンを押す作業】 それぞれの ボタン を クリック するだけです。
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 >dosコマンドで実行するようにはできるかと Sub test01() 'Call Shell("Command.com /c dir") 'Call Shell("Command.com /c mkdir テストA") Call Shell("Command.com /c mkdir テストA\テストB") End Sub 出できるようです。(エクセルVBAのモジュールでテスト) .
- imogasi
- ベストアンサー率27% (4737/17069)
>a1ファイル内にあるボタンを押すと 意味不明。VBAはエクセル?ボタンであればシートかユーザーフォーム上? ーーー ファイルのコピー ・WSHを使う http://www.moug.net/tech/exvba/0060067.htm ・VBS(FSO)をつかう http://officetanaka.net/excel/vba/filesystemobject/filesystemobject04.htm
- nag0720
- ベストアンサー率58% (1093/1860)
>Aフォルダにa1ファイルをおき、a1ファイル内にあるボタンを押すと、 「a1ファイル内にあるボタン」ってなに? a1ファイルってどういうファイル?