' 型宣言を強制する(バグ防止のため)
Option Explicit
' 今回記載されている処理を実施するプロシージャ
Public Sub main()
' 変数宣言
Dim bookB As Workbook
Dim bookBPath As String
With Application
' 画面描画をオフにする
.ScreenUpdating = False
' ブックを開く際のアラートを表示しない
.DisplayAlerts = False
End With
' ブックBのパスを入力
bookBPath = InputBox("ブックBのパスを指定してください")
' ブックBのパスが入力されなかった場合は処理終了
If bookBPath = "" Then
MsgBox "Bブックのパスが入力されなかったので処理を終了します", vbExclamation + vbOKOnly, "処理中断"
Exit Sub
End If
' エラー制御開始
On Error Resume Next
' ブックBを開く(読み取り専用)
Set bookB = Workbooks.Open(bookBPath, 0, True, , , , True)
' ブックBを開くのが失敗した場合は処理終了
If Err.Number <> 0 Then
MsgBox "Bブックを開けなかったため処理を終了します", vbExclamation + vbOKOnly, "処理中断"
Exit Sub
End If
' エラー制御終了
On Error GoTo 0
' ブックBのセルの内容をブックAにコピー
' ここでは例としてBブックの1シート目のA1セルの値をブックA(=このブック)の1シート目のA1セルにペースト
With bookB.Worksheets(1)
ThisWorkbook.Worksheets(1).Range("A1") = .Range("A1")
End With
' ブックBを閉じる(保存しない)
bookB.Close False
' ブックAの1シート目のA1セルを選択する
ThisWorkbook.Worksheets(1).Range("A1").Select
With Application
' 画面描画を再開する
.ScreenUpdating = False
' ブックを開く際のアラートを表示する
.DisplayAlerts = False
End With
' 処理完了をユーザーに通知
MsgBox "Bブックからのコピーが完了しました", vbInformation + vbOKOnly, "処理完了"
End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/15 13:03