EXCEL2000のVBAで、クリップボードにコピーしたデータ(複数のセル範囲)を、シート保護がかかった別のシートにコピーする操作を行ないたいと考えています。
手順としては「1.クリップボードにコピー」→「2.シート保護解除」→「3.貼り付け」→「4.シート保護」なのですが、下記マクロを作成して試してみたところ、2.のシート保護解除を行なった時点でクリップボードが空になるようで、「実行時エラー'1004':RangeクラスのPasteSpecialメソッドが失敗しました。」と表示され貼り付けができません。
これについて何か回避策はないでしょうか?
Range("A1:C3").Select
Selection.Copy
Sheets("貼り付け先シート").Select
ActiveSheet.Unprotect
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
以上、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
ThisWorkbook 等の自動実行イベントに
Private Sub Workbook_Open()
With Sheets("貼り付け先シート")
.Unprotect
'保護されたシートでマクロを実行するお呪い!
.Protect UserInterfaceOnly:=True
End With
End Sub
ご回答いただきありがとうございます。
教えて頂いた方法を試したところ、クリップボードからデータを貼り付けることが出来ました!
この方法の場合、マクロが「標準モジュール」と「ThisWorkbook」の2箇所に分かれるため、できれば1つのマクロで完結させたいのですが無理があるのでしょうか?
No.5
- 回答日時:
>できれば1つのマクロで完結させたいのですが無理があるのでしょうか?
一つのマクロで完結させるなら、処理開始前に保護解除をして、処理の終了時点で保護をする事になります。
いままでのプログラムの中の、保護解除や保護のタイミングを変えるだけで済みます。
ThisWorkbookモジュールではなくて、同じモジュールの中に別のプロシージャを書く方法もあります。
Auto_Open()
この場合、別のブックから呼び出された場合、実行されないので、そのような使い方がされる場合には適していません。
http://www.relief.jp/itnote/archives/001502.php
ありがとうございました。
マクロを一つにまとめる件、今日のところはうまくできなかったのですが、いくつかやり方を変えて試してみたいと思います。
No.4
- 回答日時:
#2です。
クリップボードのデータ取得は
Dim CB As New DataObject
Dim Dt As String
With CB
.GetFromClipboard
Dt = .GetText
End With
でできます。
が、#3さんの方法がよさそうですね。
No.1
- 回答日時:
このやり方ではダメですか?
「1.シート保護解除」→「2.クリップボードにコピー」→「3.貼り付け」→「4.シート保護」
Sub test()
Sheets("貼り付け先シート").Unprotect
Range("A1:C3").Copy
Sheets("貼り付け先シート").Range("A1").PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("貼り付け先シート").Protect
End Sub
この回答への補足
ご返答いただきありがとうございます。
きちんとご説明できていなかったのですが、コピー元セル範囲は決まっておらず利用者が指定する必要があるため、マクロの中でRange("A1:C3").Copyといった定型的な指定が出来ないのです。
今のところ、シート保護と貼り付けを別々のマクロにする位しか回避策が思いつきません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) マクロを短くする 1 2023/01/15 00:11
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
Excelで保護のかかったシートのコピー
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
ロックしたセルのコピー&貼り付け
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
Excel 数式の保護をしたセルを保護のままコピーする方法
Excel(エクセル)
-
6
VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗
Access(アクセス)
-
7
エクセルVBA 作業後に選択範囲を解除する方法
Excel(エクセル)
-
8
エクセルVBA/イベント発生でコピペ不能はなぜ?
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
11
エクセル 保護/非保護混在セルを一気にコピペ
Excel(エクセル)
-
12
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
13
ActiveSheet.Protect UserInterfaceOnly:=Trueの書き場所は
Excel(エクセル)
-
14
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
15
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
16
シート保護したExcelへの画像貼り付けについて
Excel(エクセル)
-
17
EXCEL 一部のオブジェクトだけを固定したい
Excel(エクセル)
-
18
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
19
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
20
VBA:カウンターの i の値が開放されなくて困っています。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
ブック名、シート名を他のモジ...
-
【ExcelVBA】全シートのセルの...
-
XL:BeforeDoubleClickが動かない
-
別のシートから値を取得するとき
-
VBA 存在しないシートを選...
-
【VBA】特定の文字で改行(次の...
-
Excelマクロのエラーを解決した...
-
実行時エラー'1004': WorkSheet...
-
ExcelのVBAのマクロで他のシー...
-
エクセル・マクロ シートの非...
-
VBAで指定シート以外の選択
-
VBA 検索して一致したセル...
-
シート削除のマクロで「delete...
-
VBA 最終行まで数式をコピーする
-
vbaでworksheetfunctionでの複...
-
エクセルのマクロでアクティブ...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
excelのマクロで該当処理できな...
-
Excelマクロのエラーを解決した...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
VBA 存在しないシートを選...
-
シートが保護されている状態で...
-
同じ作業を複数のシートに実行...
-
VBAで指定シート以外の選択
-
Excel VBA リンク先をシート...
-
エクセル・マクロ シートの非...
-
実行時エラー1004「Select メソ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルVBA Ifでシート名が合...
-
userFormに貼り付けたLabelを変...
おすすめ情報