- ベストアンサー
オフィス2003VBAのスプレッドシートでドラッグ&ドロップは可能でしょうか?
オフィス2003VBAで、ユーザーフォーム上にあるスプレッドシート1に表示させたデータの項目を、スプレッドシート2へドラッグ&ドロップしたいのですが可能でしょうか? できるのであればVBAコードを教えていただきたいのですが。 ご存知の方、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 OWC いわゆる、スプレッドシートコントロールには、ドラッグ&ドロップの機能はないはずです。それに、OWC が、果たして、スプレッド・シートをまたいでデータがやり取りできるものでしょうか。VB6にあったものが、本当に、OWC だったのでしょうか。VB6 で作ったものなら、単に、Run Time の不足だけで、Win XP でも動くはずです。前回の質問でも、クリップボードを使わずにとか、Book のワークシートのようには行かないはずです。 それと、スプレッドシート1とスプレッドシート2 ということは、Sheet1/Sheet2 ではなく、オブジェクトを二つ入れているという意味でしょうか。いずれにしても、今のスタイルでは、ほとんど思ったようには動かないのではないでしょうか。 Excelを立ち上げるなら、Bookのワークシートを上手に使ったほうが、賢明だと思います。データロガーでしたら、OLEかDDE になっているだろうから、Excel自体で実現すればよいのではないかと思います。ここでも、DDEインポート・マクロの質問はいくつか出ています。 VB6風にするといって、UserFormを使うというのは、もともとOLE ですから、概ね、うまく行かない気がします。不明の問題があるからです。ある程度の経験者なら、そういう設計はしないと思います。もし、そのまま実現しようとするなら、他言語で市販のグレープシティなどのスプレッドシート・コントロールを使ったほうが良いのではないかと思います。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
>スプレッドシート1 とは、表計算ソフトのシート(とか機能)を総称して、言う言葉。オフィス2003ならワークシートでしょう。回った言い方の真意は? >ユーザーフォーム上にあるスプレッドシート1に ユーザーフォーム上にスプレッドシート1があるの? シート1のセルにある、データ項目を、ユーザーフォーム上にある何かのコントロールに表示しているのか? そのコントロールはなに?これを書かないと。 どうして、コード的に難しい事になる、D&Dをしないとならないのか。 値代入ではダメなのか。思い付きではないのか。 質問者が出来る範囲の方法で、仕様を変えることは出来ないのか。 ーー この質問を離れて、上の見地から考えると、全体的に何がやりタイのか。 >VBAコードを教えていただきたいのですが 全般的にコード作成を要求するのは規約違反だと思う。 自分でやってみて、行きずまった1歩先をアドバイスしてもらうのが本筋では?
補足
スプレッドシートはワークシートとは別ですよ。 ユーザーフォーム上に作った、OWC11.Spreadsheetコントロールの事です。 VB6.0で、必要なロガーデータ項目をドラッグ&ドロップするソフトがあるのですが、WindowsXPに対応していません。 オフィス2003のエクセルVBAで同じものを作りたいのですが、ネットで検索してもまったく引っかかりません。 ドラッグ&ドロップのコードがわからないので、 その部分のVBAコードを教えていただきたいのです。
お礼
早速の回答ありがとうございます! ドラッグ&ドロップの機能がなかったんですねぇ。 わかりました。 昔、VB6でどなたかが作ったソフトがあるのですが、文字化けしてますし正常に動作しません。ソフトのコード自体に不具合があるのかもしれません。ユーザーフォームで作り直せたらいいなーと思ったんですけど。ソフトがないしどないもいきません。不明の問題もあるのでしたらできませんねぇ。 とりあえず、今あるオフィスソフトで、120個程度のロガー項目から必要な数項目をひろって、自動処理をするものを作りたかったのですが、別の市販ソフトに頼らないといけないみたいですね。 検討します。ありがとうございました。