
マクロでこんなことできませんか?
完全でなくても構いませんので、できる範囲で教えてください。
宜しくお願いします。
マクロを起動すると、ファイルを選択するウインドウが開きます。ここで、あるExcelファイル(仮にC:\MYDOCUMENT\EXCEL\AAAA.xls)を選択すると、このファイルのセルB2,B3,B4,B5が、マクロを実行しているファイルの同じセルにコピーされ、更にセルB1に、AAAA.xlsの.xlsを抜いた数値のAAAAが入力されます。
AAAA.xlsは一度オープンになってもかまいませんが、自動的に閉じればベターです。
No.2ベストアンサー
- 回答日時:
こんにちは。
こんな感じでしょうか。
「ファイルのセルB2,B3,B4,B5」「マクロを実行しているファイルの同じセル」とありますが、複数のシートが存在する可能性があるので、これでは特定出来ません。
取あえず双方ともActiveSheetで処理してます。
Sub Test()
Dim FName, i As Integer
Dim wb As Workbook, pWs As Worksheet
Set pWs = ThisWorkbook.ActiveSheet
FName = Application.GetOpenFilename("Excel (*.xls), *.xls")
If FName = False Then Exit Sub
Workbooks.Open (FName)
Set wb = ActiveWorkbook
pWs.Range("B1") = Left(Dir(FName), Len(Dir(FName)) - 4)
For i = 2 To 5
pWs.Range("B" & i) = wb.ActiveSheet.Range("B" & i)
Next i
wb.Close
End Sub
No.3
- 回答日時:
少し簡単になりました。
(1)私の場合、My Documentsの中にaa2.xlsのファイルがある。
(2)エクセルを立ち上げて出来るBook1の標準モジュール
に下記を貼りつけ、実行します。
Sub test01()
Application.FindFile
x = ActiveWorkbook.Name
y = Left(x, Len(x) - 4)
Workbooks("Book1").Worksheets("sheet1").Range("B1") = y
Workbooks("Book1").Worksheets("sheet1").Range("B2") = ActiveSheet.Range("b2")
Workbooks("Book1").Worksheets("sheet1").Range("B3") = ActiveSheet.Range("b3")
Workbooks("Book1").Worksheets("sheet1").Range("B4") = ActiveSheet.Range("b4")
End Sub
(3)ファイル名指定のダイログウインドウがでるから、そこでaa2のアイコンをクリックする。
(4)Book1のsheet1のB1セルにaa2、B2,B3,B4にaa2の
Sheet1のB2,B3,B4の内容が書きこまれました。
(5)最後にActiveWorkbook.Closeを入れると,
自動的にaa2は閉じるもことが出来ます。
No.1
- 回答日時:
出来ます。
が、結構プログラミングの知識が要求されます。
このスペースで説明するのは大変なので、ヒントだけですが記載します。
難関はファイル選択ウィンドウの表示で、VBのコモンダイアログコントロールがインストールされていると簡単にウィンドウズ標準のファイル選択ダイアログを呼び出せますが、なければWin32APIをコールするか、ExcelのInputダイアログで代用します。
読み込んだExcelファイルはExcelオブジェクトとして扱う知識が必要です。セルの値はもちろん取得可能です。
"C:\MYDOCUMENT\EXCEL\AAAA.xls"から"AAAA"を抜き出す方法は、文字列検索系の関数Instr()やRevInstr()、と文字列抽出系のMid()やLeft()、Right()などを組み合わせればわりと簡単にできるでしょう。もちろん一文字ずつファイル名を解析するコードを書いてもOKですし、Replace()を使えばもっと簡単にできるでしょう。
がんばって下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
EXCEL VBA 指定したファイルが...
-
データ参照先が別ファイルの場...
-
フォルダ内のexcelファイルを順...
-
フォルダ内のブック全部にパス...
-
vba初心者です。 質問です。 毎...
-
エクセルマクロ 異なるファイ...
-
EXCELマクロを無効にして開く方法
-
エクセルVBAで送る操作
-
ファイルの保存場所を変えたら...
-
【Excel VBA】ファイル名が一...
-
【マクロ】名前を保存する際に...
-
エクセルファイルを開く時、関...
-
VBAでワークブックの名前を変数...
-
秀丸:あらかじめ設定した複数...
-
Excelのマクロでファイルを開く...
-
エクセルマクロで不特定なファ...
-
Excelマクロで指定したファイル...
-
Excel VBA seleniumのedge操作...
-
Accessのaccdbファイルを起動で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
【マクロ】EXCELで読込したCSV...
-
EXCEL VBA 指定したファイルが...
-
【マクロ】名前を保存する際に...
-
フォルダ内のexcelファイルを順...
-
エクセルマクロで不特定なファ...
-
【Excel VBA】ファイル名が一...
-
ファイルを開かずにマクロを実行
-
エクセル 複数ファイルの一括...
-
accessフォルダを移動したらフ...
-
ファイルの保存場所を変えたら...
-
データ参照先が別ファイルの場...
-
VBAでワークブックの名前を変数...
-
EXCELマクロを無効にして開く方法
-
フォルダ内のブック全部にパス...
-
エクセル(マクロ)のファイル...
-
エクセルファイルを開く時、関...
-
秀丸:あらかじめ設定した複数...
-
Excelのマクロでファイルを開く...
-
EXCEL VBAで作成した ファイル...
おすすめ情報