
エクセル勉強中です。
マクロの記憶でSheet2の元データの図と記入できるセルをSheet1の有効セルにコピペするマクロを作りました。
複数の方が使う予定なので元データのSheet2を非表示にしたところマクロがエラーになりました。
どうしたらよいでしょうか?
また貼り付けをする時、微妙に元データのシートがちらちらと移ります。
こちらも合わせてご指導いただけましたら助かります。
よろしお願いします。
Sub b1ab1()
'
' b1ab1 Macro
'
'
Sheets("Sheet2").Select
Range("AK48:AP56").Select
Selection.Copy
Sheets("ダクト制作単品図").Select
ActiveSheet.Paste
End Sub
No.1ベストアンサー
- 回答日時:
シートを非表示のままではそのシートに関するマクロはエラーになります。
そこで、普段非表示にしているシートでマクロを実行するには
マクロの中でシート操作を実行するときだけシートを表示させて、
シート操作が終わったらまたシートを非表示にするという方法を使います。
実行したい動作の前後にSheets("Sheet2").Visibleで表示・非表示を挿入します。
Sheets("Sheet2").Visible = True(シートを表示する)
さらに画面がちらちらするを止めるには
Application.ScreenUpdating = False とします。(画面の更新をしない)
貴殿のマクロに付け加えると以下のようになります。
Sub b1ab1()
' b1ab1 Macro
Application.ScreenUpdating = False '画面の更新をしない
Sheets("Sheet2").Visible = True 'シート2を表示
Sheets("Sheet2").Select
Range("AK48:AP56").Select
Selection.Copy
Sheets("ダクト制作単品図").Select
ActiveSheet.Paste
Sheets("Sheet2").Visible = False 'シート2を非表示
Application.ScreenUpdating = True '画面の更新する
End Sub
貴殿の実用上問題ないのかもしれませんが、
上のマクロは「ダクト制作単品図」シート上のアクティブなセル(選択してあるセル)なら
どこにでもペーストされてしまうので
ペーストするセル(またはレンジ)も指定する方がいいように思われます。
ありがとうございます!!
思っていた仕上がりになりました。
自分なりに探ってはみたのですがわからなくて初めて質問させていただきましたがわかりやすい説明とアドバイスに感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
Visual Basic(VBA)
-
excel vba 非表示のシートに入力するには?
その他(OS)
-
4
VBA 非表示シートの取り扱い
Excel(エクセル)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
9
指定したシート名以外を非表示にするには?VBA
Excel(エクセル)
-
10
エクセルVBA 非表示シートがあるとエラー
その他(Microsoft Office)
-
11
別シートのマクロを実行する方法
Excel(エクセル)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
14
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
15
エクセルファイルを開く時、常に同じシートから開くようにするには?
Windows Vista・XP
-
16
エクセルマクロで特定の範囲が空白という条件
Excel(エクセル)
-
17
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
18
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
19
別のシートから値を取得するとき
Visual Basic(VBA)
-
20
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ユーザーフォームに入力したデ...
-
5
ブック名、シート名を他のモジ...
-
6
【VBA】特定の文字が入っている...
-
7
エクセルVBAでダブルクリックを...
-
8
【VBA】シート名に特定文字が入...
-
9
VBA 存在しないシートを選...
-
10
C#でExcelのシートを選択する方法
-
11
【VBA】指定した検索条件に一致...
-
12
【ExcelVBA】全シートのセルの...
-
13
Excel チェックボックスにチェ...
-
14
ExcelのVBAのマクロで他のシー...
-
15
別のシートを参照して計算する方法
-
16
実行時エラー'1004': WorkSheet...
-
17
エクセルのシート名変更で重複...
-
18
VBAでオブジェクト変数にsetし...
-
19
エクセル・マクロ シートの非...
-
20
VBAで特定のファイルを順番にオ...
おすすめ情報
公式facebook
公式twitter