• 締切済み

VB6でDBからクリップボード経由でExcelへ出力する際にクリップボードが開けなくなる

VB6でOracle9iのDBから変数へ格納し、データを一気に貼り付けられるようにクリップいボードへ一旦コピーしてからExcelへ貼り付けています。 ごくたまにですが、Excelに空白の欄が出てしまい、うまくコピー&ペーストができていない様子です。 調べていくうちにいくつか原因を特定しました。 ・メモリ不足 ・DBからデータが取得できていない ・クリップボードが開けない メモリ不足かと思いましたが、CPU使用率は処理中の最大60%程度で、仮想メモリもかなり余裕あると思います。 データが取得できてないかとも思いましたが検討はずれ。 最後にクリップボードが開けないというメッセージが出ていることに気づきました。 他アプリケーションソフトが立ち上がっている場合はクリップボードへアクセスされている可能性があって、うまくコピー&ペーストができていないと予想されました。 しかし、他アプリケーションはDB操作ツールのObjectBrowser、メモ帳、Excelで、同時にdmpをエクスポートしていました。 クリップボードへアクセスするようなアプリではないように思いますが、これらは端末で操作していなくても定期的にクリップボードへアクセスするようなアプリなのでしょうか?

みんなの回答

  • myRange
  • ベストアンサー率71% (339/472)
回答No.1

ありゃりゃ、先ほど投稿したつもりでしたが反映されてないようなので再投稿。 環境がないので何ですが、、 クリップボードを介さずに配列をそのままエクセルに代入したらどうですか?   TargetSheet.Range("A1").Resize(5, 10).Value = myArray 以上です。  

superstark
質問者

お礼

修正としてはそのままExcelへ書き込む処理へ変えました。 原因を求めています。

関連するQ&A

  • エクセルで 「クリップボードを空にできません・・」

    Win7 64ビット エクセル2013 インターネットには繋がらない環境で使用 同じIP形態の別のパソコンでコピーアンドペーストできるソフト(IPクリップボード)を立ち上げていると エクセルにてCtrl+マウスでドラッグ操作で「クリップボードを空にできません。別のアプリケーションがクリップボードを使用している可能性があります。」と表示されます。ただ、OKを押すとコピーはできています。これ以外のコピー操作ですとこのメッセージはでません。 Ctrl+マウスでドラッグ操作をやめてしまえばいい話かもしれませんがどうしてもこの操作でコピー貼り付けを行いたいのです。 メッセージを出さなくすることは可能でしょうか? ご回答いただけますと幸いです。

  • エクセルのコピペでクリップボードの中身が消える

    エクセルであるセルをコピーして、そのあとペースト以外の操作をすると、クリップボードの中身が消えて、ペーストできなくなってしまいます。 たとえば、ペーストのためにctrl+Vを押すべきところ、shift+Vとかやる失敗をすると、クリップボードの中身が消えて、ペーストできなくなるので、コピーからやり直しになって面倒です。どこをコピーしたか忘れることも少なからず・・・。 クリップボードの中身が消さないようにするには、どんな設定をすればよいのでしょうか?

  • excel コピー、クリップボードについて

    2000のエクセルを最近いれたのですが、 例えば、ホームページからコピーして セルに入れるって作業をやってたら 例えばコピーペーストができなくなったり 「クリップボードが12個」になったのでどーの とアラートが出てくるので 非常に使いづらいんです。 この機能をOFFにするにはどうしたらいいんですか?

  • Access VBAでクリップボード操作

    Accessでクリップボードの操作をしていますが、クリップボード内にデータがあるかないかのチェック方法がわかりません。 ExcelではApplication.ClipboardFormatsが使えるようですが、Acessにはありません。 Accessの場合、エラーを判定しエラーコードで後処理をするサンプルがありましたがそれ以外は方法がないものでしょうか?

  • クリップボードを空にできません コピーできない

    エクセル上でコピーしようとしたら 「クリップボードを空にできません。 別のアプリケーションがクリップボードを使用している可能性があります」 と言うメッセージが出て、コピーができないのですが クリップボードを空にするにはどうすればいいですか? エクセル上で可能でしょうか?

  • Mac:クリップボードのデータを削除したい

    PowerMacG4で、OS9.2でフォトショップ7.0とイラレ8.0を使っています。 画像をコピペなどの操作をしたあとで、他のアプリケーションを使うときに「クリップボードを何とか何とかに変換しています…」的なメッセージが出てしばらく待っていないといけないことがあります。 急いでいるときにそれが起こるとイライラしてしまいます。 だからそういうときはなるべく軽いテキストなどをコピーしてから他のアプリに移ったりしているのですが、そんなめんどくさいことをしなくてもクリップボードのデータをパッと消す方法ってありますか?

  • エクセルのクリップボードで・・

    エクセルのクリップボードで・・ エクセル2007を使用しています。 複数のセルをコピーすると、クリップボードが表示されます。 クリップボードのなかの「すべて貼り付け」をクリックすると、 コピーした項目が縦方向に一列に貼り付けられます。 これはもともとの仕様なのかなあ?とも思いますが、もし 横方向に貼り付ける方法があれば教えてください。

  • クリップボードを排他的に利用する方法

    自アプリケーションが起動している間、他アプリケーションからクリップボードを利用できないようにしたい、 あるいは他のアプリケーションがクリップボードに保存したデータと混ざらないように区別して自アプリケーションがデータを保存しこれを利用できるようにしたい と希望しています。 具体的には、 一定間隔毎に、画面をキャプチャしクリップボードに送り、これをピクチャーボックスに表示する処理を繰り返すプログラムを作成していますが、 この処理の間、たとえばWordなどの他アプリケーションで、コピーや貼り付けの操作を行えないようにしたい あるいはWordなどでコピーしたデータとは完全に区別して保存しこれを独占的に利用したいと希望しています。 このようなことはできるのでしょうか。もしも可能でしたら、どのように記述すればよいのでしょうか。 恐れ入りますが具体的にサンプルコードなどで教えていただければ大変ありがたく存じます。 恐れ入りますが、何卒ご教授いただきたくお願いいたします。 ちなみによくは分からないのですが、EmptyClipboard()関数を使って、クリップボードの所有権を取得できるとの記述を見たのですが、 (http://www.vbvbvb.com/jp/gtips/0051/gEmptyClipboard.html) たとえば、上記のサンプルプログラムで ' クリップボードの所有権を持つウィンドウハンドルを取得 lngClipboardOwner = GetClipboardOwner ' クリップボードの所有権が自フォームと同じときは If lngClipboardOwner = Me.hwnd Then   ' 画面のスナップをクリップボードに送り?   ’またクリップボードのデータの取得を行う? End If といったような感じで指示することは可能なのでしょうか。 もしも可能であれば申し訳ございませんが、上記If文部分の具体的な記述方法をご教授ください。宜しくお願いいたします。

  • イラストレーターのデータがクリップボードに入りません。

    イラストレーターのデータがクリップボードに入りません。  イタストレーター10のデータをフォトショップ7にペーストしたいのですが、「ペースト」がグレーで選択できません。しかし「配置」は出来ます。  たまにイラストレーター終了時に「クリップボードのデータを残すか?」の表示が出ることがあって、この場合は正常にクリップボードにデータが入り、フォトショップでペースト出来ます。  しかし、ほとんどコピーして終了時にこの「クリップボードのデータを残すか?」の表示は出ずに終了しデータがクリップボードに残りません。 但しコピーはされており、再度ファイルを開くことは出来ますが、「スタート」→「ファイルを指定して実行」に「clipbrd」を入れてクリップボードを見ても空白になってます。 「環境設定」では「PDF」と「AICB」の「パスを保持」を指定してます。 以上、クリップボードにデータを保持するにはどうすればいいのでしょうか。  尚、イラストレーターのデータは「白塗りに黒い線」や「塗りなしで黒い線」が多く、これをフォトショップにペーストしたいのですが、このデータの作り方には問題があるでしょうか。  OSはWinXPです。 以上、よろしくお願い致します。

  • word2016のVBAでクリップボードの操作

    word2016のVBAでクリップボード内のデータを操作することは可能ですか? Application.ClipboardFormats は、エクセルでしか使えないようでした。