No.3ベストアンサー
- 回答日時:
参考になれば幸いです。
Private Sub Workbook_Deactivate()
Dim r As Range
If Application.CutCopyMode Then
Set r = Windows(ThisWorkbook.Name).Selection
End If
Application.Calculation = xlAutomatic
If Not r Is Nothing Then
r.Copy
End If
End Sub
ただし、「コピー」→「他ブックをアクティブにしてペースト」が前提です。他ブックをアクティブにする前に、別のセルを選択とかすると、そのセルがコピーされてしまいます。
回答ありがとうございます。
>他ブックをアクティブにする前に、別のセルを選択とかすると、そのセルがコピーされてしまいます。
はとくに気になりませんでした。
ありがとうございました。
No.5
- 回答日時:
こんにちは
よこからですが・・・
(計算モードを切り替える前に、selectionの範囲を記録しておき、)最後に、再度 セル範囲.Copy としておけば、セル選択でのコピーには対応できそうな気がします。
()内の処理は不要かも知れません。
数式バーで、「セルの値」や「セルの値の一部」をコピーしている場合には、上記では対応しきれませんけれど・・
回答ありがとうございます。
ただ、
>計算モードを切り替える前に、selectionの範囲を記録しておき、
の方法が良くわからなかったです。
でも、うまくいきそうな気がします。
ありがとうございました。
No.4
- 回答日時:
No.2の者です。
直接の方法で、良い案が見付からないですね。
例えば、コピー元のブックを最初に自動にしてからコピーとかでは、
ダメでしょうか?
例えばCtrl + Cに、下記のデータのコピーのショートカットキーを登録。
コピーする際は、範囲を選択した状態で、Ctrl + C にてコピーする。
(右クリックでのコピー等不可ですが。)
下記を、記載しておく。
Sub データのコピー()
Application.Calculation = xlAutomatic
Selection.Copy
End Sub
【VBA】ショートカットキーを割り当てる
https://daitaideit.com/vba-set-shortcut-key/
下記で、xlAutomatic以外だったら、xlAutomaticにする様なコードを記載。
Private Sub Workbook_Deactivate()
If Application.Calculation <> xlAutomatic Then
Application.Calculation = xlAutomatic
End If
処理
No.2
- 回答日時:
おはようございます。
>ブックの切り替え時に自動計算になるようにしており、
→マクロをどの様に組まれているか分かりませんが、上記のマクロの操作で
コピーが解除されているのでは?と思います。 そのコードを見直すとか、
イベントでしたら、一旦無効にされては?と思います。
イベントの無効、貼り付け処理したあとに、Trueに戻される方が良いかと。
Application.EnableEvents = False
https://xtech.nikkei.com/it/pc/article/NPC/20070 …
もし、上記以外でしたら、コピー開始~貼り付け、その間に処理される
コードを載せて貰うと、良い回答ができるかも知れません。
No.1
- 回答日時:
>ブックの切り替え時に自動計算になるようにしている
Workbook_Deactivateイベントプロシジャの中で、自動計算への切り替えをを行っているってことですか?
もしそうであれば、切り替えた時点でコピーモードはリセットされますね。
「コピー中であれば、自動計算への切り替えをしない」ように変更できるのであれば簡単そうですが、要件的に無理そうなので、結構、厳しいかもです。
「張り付けさえできれば良い」ということであれば、クリップボードの内容を表示して、そこから選択すればできますけど・・・(添付画像参照。ただし、Excelのバージョンは古いので・・・)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Excel(エクセル) 複数のExcelブックのシート1の内容を1つのExcelブックにコピー貼り付けたいのでvbaコードを 7 2023/02/10 23:20
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
Excel)軽いデーターのはずなの...
-
Excel 行の連続データを列に参...
-
Excelでコピーした行の挿入を繰...
-
「選択範囲を解除してアクティ...
-
エクセルで勝手に「折り返して...
-
メールソフト「サンダーバード...
-
エクセルで、選択範囲の数値全...
-
Excelで、横並べのデータを縦並...
-
エクセルで値だけコピーして背...
-
EXCELシートをPowerPointにきれ...
-
EXCELのオートフィルの設定を変...
-
エクセル 別シートへのコピー...
-
EXELで複数のとびとびのセルを...
-
エクセルオートフィルで書式を...
-
エクセルでの行数・列数を指定...
-
エクセル コピーしたデータを1...
-
エクセルのコピペでクリップボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルの2ページ目の作り方
-
エクセルのアポストロフィを一...
-
Excel 行の連続データを列に参...
-
エクセルで、選択範囲の数値全...
-
エクセルで勝手に「折り返して...
-
Excelでコピーした行の挿入を繰...
-
EXCELシートをPowerPointにきれ...
-
EXCELのオートフィルの設定を変...
-
エクセルでの行数・列数を指定...
-
エクセルのコピペでクリップボ...
-
Excelに、ダブルクォーテーショ...
-
エクセル 別シートへのコピー...
-
メールソフト「サンダーバード...
-
「選択範囲を解除してアクティ...
-
EXELで複数のとびとびのセルを...
-
エクセルで値だけコピーして背...
-
Excel)軽いデーターのはずなの...
-
エクセル・数値が変化したらカ...
-
Excelで、横並べのデータを縦並...
おすすめ情報
回答ありがとうございます。
>コードを載せて貰うと、良い回答ができるかも知れません。
コピー開始~貼り付けはランダムなので手で行っています。
その他コードは
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
で手動計算モードへ移行
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'ファイルを閉じる前に
か
Private Sub Workbook_Deactivate() 'bookが切り替わると
で'自動計算モードへ移行
しています。
プロシージャにコピー&貼付けが見当たらないのですが、
コピー時にイベント無効、貼付け(又は貼付けしなかった)後にイベント有効にするにはどうすればよいでしょうか?
よろしくお願いいたします。
No.1さんへ。
回答ありがとうございます。
>もしそうであれば、切り替えた時点でコピーモードはリセットされますね。
そうなんです。コピー中は手動/自動計算しないようにできればよいのですが・・・
何かいい方法はないでしょうか?
よろしくお願いいたします。