質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

533閲覧

クリップボードエラー。解消方法ご教授ください。

ari0627

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2024/10/03 02:01

実現したいこと

VBAで作成しWindows10で動いていたものが,osをWindows11にした後、クリップボードエラーが発生します。解決方法ご教授ください。

発生している問題・分からないこと

クリップボードエラーが発生します。

エラーメッセージ

error

1クリップボードエラー 2別のアプリケーションでしようされていいRため、コンテンツをクリップボードにコピーできませんでした。このブック内にコンテンツ内にコンテンツを貼り付けするすることはできますがほかのアプリケーションでは使用できません。

該当のソースコード

SET sh2 = Sheets("計算デ-タ”) SET sh1 = Sheets("ワークデ-タ”) For i = 3 to gyomax sh2.Row(i).copy sh1.Row(i).PasteSpecial Next i

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

解決できなかったです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

とりあえず、下記の記事の内容すべてに目を通されることをお奨めします。

Japan Office Client Support Blog: クリップボード アクセスの競合による Office でのコピー-貼り付け失敗

Office アプリケーション上でコピーや貼り付け操作を行ったときに、コピーしたはずのデータが貼り付けられなかったり、エラーが発生することがあります。これは、他のアプリケーションとのクリップボードへのアクセスが競合したことが原因である場合が非常に多いものとなります。このような原因でコピー・貼り付けに失敗する場合、基本的には再度コピーや貼り付けを行うしかありません。

VBA マクロやその他言語で Office をオートメーションしていて、その処理の中でコピー・貼り付けを行うときに現象が発生する場合は、コピー・貼り付けではなく、別の方法でデータの転記を行うよう変更して回避することをお勧めします。

例えば、Excel でセルをコピーして別のシートに貼り付けるような場合は、コピー元のセル オブジェクトの Valueなどを貼り付け先のセルに設定するよう変更し、Copy や Paste といったメソッドは使用しないことが検討できます。

投稿2024/10/03 03:01

sk.exe

総合スコア938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ari0627

2024/10/03 05:09

ありがとうございました。 大量データを処理するため、高速化の一環でシート単位、行単位のコピペをVBAを使用しています。 平成27年に作成したアプリで今まで問題なく何年も使っていたのですが、Windows11に切り替えたあと、 Windows10では問題なく処理できていたのが、最近、急にexcel・VBAのアプリでトラブルが発生して頭を抱えています。 最終的にはCopy や Pasteを使わないものに変更せざるを得ないのかなと思っています。
sk.exe

2024/10/03 05:43

示されたソースコードのように、ループ処理によって短時間のうちに Copy と Paste を何度も繰り返す方式だと、その分クリップボードへのアクセス回数も増えるため、どこかのタイミングでクリップボードアクセスの競合が発生する可能性も高くなります。 例えば「あるワークシートの3行目から最後のデータ行までの範囲を別のワークシート上に複写する」だけでよいなら、行単位でコピーアンドペーストを繰り返すのではなく、「その範囲全体のコピー」と「別のワークシートへの貼り付け」を1回ずつ実行するようにした方が、クリップボードへのアクセス回数が減るので競合が発生しにくくなることが期待できます(それでも発生する時は発生するのですが)。 また、参照元であるセル範囲の値のみを複写できれば充分なのであれば、件の記事に示されているように Value プロパティを介して「2次元配列の代入」を行なうようにした方が確実です。 あとは実際に使用されているマクロにおいて、値以外の要素(数式、書式、コメント、データの入力規則など)も複写の対象に含めなければならないか否か次第でしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問