EXCEL超初心者マクロ(2)-EXCELファイル取込み-
EXCELファイル取込みとタイトル付けしてますが、手で実行するコピーです。
マスタexcelを取込んだりするときにマクロ化しておくと便利です。
サンプルを作ってみましたので参考にしてください。
メインEXCEL: Sample_2.xlsm
取込むEXCEL: Sample_2e.xlsx
赤字を変更してください
青字は、変数ですので宣言を忘れないでください。
※標準モジュールのmudule1の上のほう、Option Explicitに書きます。
前のブログで\簡単に説明しています。
MSG_FLG = MsgBox("SAMPLE2.xlsx → myEXCEL 取込" & vbCrLf & " 実行OK? ", vbYesNo) If MSG_FLG = vbNo Then Exit Sub End If mySheetName001 = "SAMPLEEXCEL" '取込みシート名 ' ***クリア処理*** '### シートフィルタ解除サブプロシジー ### sheet_clear '### シートクリア ### Sheets(mySheetName001).Select Cells.Select Selection.Delete Shift:=xlUp Sheets(mySheetName001).Select Range("A1").Select '############################################################ Const cnsTITLE = "SAMPLE2.xlsx 取込み(*.Xlsx)処理" Const cnsFILTER = "SAMPLE2.xlsx (*.Xlsx),*.Xlsx" With CreateObject("WScript.Shell") .CurrentDirectory = Worksheets("KANRI").Range("B2") '@@ シート設定 End With vFILENAME = Application.GetOpenFilename(FileFilter:=cnsFILTER, title:=cnsTITLE) If VarType(vFILENAME) = vbBoolean Then MsgBox ("キャンセル") Exit Sub End If Set writeSheet = ThisWorkbook.Worksheets(mySheetName001) ' 自分Sheet名 セット Set strBookName = Workbooks.Open(vFILENAME) '相手オープン ' ### フィルタを念のため外す Sheets("Sheet1").Select If Sheets("Sheet1").AutoFilterMode Then Sheets("Sheet1").Range("A1").AutoFilter End If Cells.Select Selection.Copy writeSheet.Activate Cells.Select ActiveSheet.Select Range("A1").PasteSpecial ' Range("A1").PasteSpecial Paste:=xlPasteValues '### 値のみ貼り付け ' 相手クローズ時 クリップモードメッセージと保存しますかメッセージを回避。 Application.CutCopyMode = False Application.DisplayAlerts = False strBookName.Close savechanges:=False Application.DisplayAlerts = True writeSheet.Activate '元選択(download) Set writeSheet = Nothing Set strBookName = Nothing ' シートグループ化解除(EXCELグループ化解除必要時) ' ActiveSheet.Cells.ClearOutline MsgBox (" SAMPLE2.xlsx 取込み終了 ") Range("A1").Select
ディスカッション
コメント一覧
まだ、コメントがありません