ここから本文です

先ほど他のブックを開いて貼り付けて連結するマクロを作成していただきましたが S...

vhe********さん

2016/9/1422:28:25

先ほど他のブックを開いて貼り付けて連結するマクロを作成していただきましたが
Sheetモジュールより標準モジュールの方がどうしても都合がいいのです

Option Explicit

Sub Sample()
Const bkName As String = "2.xlsb"
Dim wsh As Object, path As String
Dim bk As Workbook, st As Worksheet

'エクセルの再描画を抑止する
Application.ScreenUpdating = False

'エクセルのアラート表示を抑止する
Application.DisplayAlerts = False


'デスクトップのパスを取得する
Set wsh = CreateObject("WScript.Shell")
path = wsh.SpecialFolders("Desktop") & "\"
Set wsh = Nothing

'ブック2が存在したらブック2を開く
If Dir(path & bkName) <> "" Then
Set bk = Workbooks.Open(path & bkName)
Set st = bk.Worksheets(1)

'ブック2で使われているセル範囲をこのブックの最下行の1行下に張り付ける
st.UsedRange.Copy Range("A" & Range("A" & Rows.Count).End(xlUp).Offset(1).Row)

'ブック2を閉じる
Application.DisplayAlerts = False
bk.Close False

End If

'エクセルのアラート表示を再開する
Application.DisplayAlerts = True

'エクセルの再描画を再開する
Application.ScreenUpdating = True

'エクセルを最大化する
Application.WindowState = xlMaximized
End Sub

閲覧数:
37
回答数:
1

違反報告

ベストアンサーに選ばれた回答

2016/9/1506:41:56

若干の修正ですが、以下のコードになります。

Option Explicit
Sub Sample()
Const bkName As String = "2.xlsb"
Dim wsh As Object, path As String
Dim bk As Workbook, st As Worksheet, st1 As Worksheet

'エクセルの再描画を抑止する
Application.ScreenUpdating = False

'エクセルのアラート表示を抑止する
Application.DisplayAlerts = False

Set st1 = ThisWorkbook.Worksheets(1)

'デスクトップのパスを取得する
Set wsh = CreateObject("WScript.Shell")
path = wsh.SpecialFolders("Desktop") & "\"
Set wsh = Nothing

'ブック2が存在したらブック2を開く
If Dir(path & bkName) <> "" Then
Set bk = Workbooks.Open(path & bkName)
Set st = bk.Worksheets(1)

'ブック2で使われているセル範囲をこのブックの最下行の1行下に張り付ける
st.UsedRange.Copy st1.Range("A" & Range("A" & Rows.Count).End(xlUp).Offset(1).Row)

'ブック2を閉じる
Application.DisplayAlerts = False
bk.Close False

End If

'エクセルのアラート表示を再開する
Application.DisplayAlerts = True

'エクセルの再描画を再開する
Application.ScreenUpdating = True

'エクセルを最大化する
Application.WindowState = xlMaximized
End Sub

  • 質問者

    vhe********さん

    2016/9/1506:54:42

    どうもありがとうございます
    動作OKでした
    これで希望通りになりました
    Sheetモジュールにはイベント系が入っていて
    ちょっと不便だったのですいませんでした

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2016/9/15 06:55:08

この度のご回答誠にありがとうございました

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる