• ベストアンサー

EXCEL VBA リストビューの項目編集

質問させさせていただきます。 EXCEL VBAで、フォーム上にEcxelシートのような表形式のコントロールを貼り付けて、編集したいと考えています。 調べたら、見た目はリストビューが良かったのですが、2列目以降が選択できないとの事なので、 他にグリッド系コントロール(無料)で良いものがあったら教えていただきたいと思います。 また、リストビューを使った場合でも、何か案があれば助言いただきたいと思います。 リストビューに期待しただけに、ショックは大きいです・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

>..それと余談なのですが、スプレッドに限らず2003で作ったマクロは、 >問題なく2007で動くのでしょうか? 下位バージョン互換を考慮されている機能は動きます。 ですがやはりCommandbar関連など、仕様が大きく変わった部分や FileSearchオブジェクトなどのように、消えた機能を使ってると動きません。 http://www.asahi-net.or.jp/~ef2o-inue/kankyo/sub02_04_04.html http://office.microsoft.com/ja-jp/excel-help/HA010198895.aspx http://technet.microsoft.com/ja-jp/library/cc179188%28office.12%29.aspx http://msdn.microsoft.com/en-us/library/bb242669%28office.12%29.aspx

butman11
質問者

お礼

いろいろご回答ありがとうございました! 検証した結果、スプレッドシートは使わず、最初に検討していた リストビューを使用することにしました。 フォーム上にテキストボックスを貼り付け、そこからリストビューの各項目を 変更させるようにします。 それで話は変わってしまうのですが、リストビューのある1行を、違う行に変更することは 可能なのでしょうか?(例 5行目を2行目に挿入)  内容が完全にすりかわってしまい申し訳ありません。

その他の回答 (3)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

ぁ、標準では使えないという意味でしょうか。 確かに推奨はされてないようですね。 http://support.microsoft.com/kb/972129/ja http://blogs.msdn.com/b/excel/archive/2006/07/17/668544.aspx 私のは2000や2003との混在環境しかないのでowcxx.dllは入ってますが 2007単独環境の場合は別途ダウンロードしないといけないのでしょうかね。 『2007 Office system 用 Office 2003 Web Components Service Pack 1 について』 http://support.microsoft.com/kb/937961/ja 『2007 Microsoft Office system 用 Microsoft Office 2003 Web Components Service Pack 1 (SP1)』 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c815dffa-d5f3-4b71-bf46-13721bd44682 非推奨とは言え、 前述://blogs.msdn.com/..には >..Extended Support Ends >..December 31,2016 とあります。 対象者や用途によりますが、使用される場合は自己判断になるかと思います。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

>ですがスプレッドシートはEXCEL2007では使えないと >出てきました・・・ ん? エラーメッセージですか? 具体的なメッセージ文字を教えてください。

butman11
質問者

お礼

実際にはまだ試していないのですが、ネットで調べたら Excel2007には、そもそもMicrosoft Office Web Components自体が なくなったとの事らしいです。 マクロ作成中のPCはExcel2003なので、スプレッドシートを使えると思うのですが、 完成したマクロの保存先PCはExcel2007です。 問題ないのでしょうか?それと余談なのですが、スプレッドに限らず2003で作ったマクロは、 問題なく2007で動くのでしょうか?

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>フォーム上にEcxelシートのような表形式のコントロール.. Microsoft Office Web Components xx.0(OWCxx.DLL)の Microsoft Office Spreadsheet xx.0 コントロール はどうでしょうね。

butman11
質問者

お礼

ご回答ありがとうございます。 スプレッドシート、確かに良いです! ですがスプレッドシートはEXCEL2007では使えないと 出てきました・・・ 対象のPCはEXCEL2007です。 スプレッドシートのようなものが他にないでしょうか? 再度助言をお願いします!

関連するQ&A

  • Excel2010 VBA リストビュー読めない

    開発マシンで作ったEXCEL2010のVBAファイルを ほかのアプリ用マシンで開いたとき ユーザーフォームの中にあるリストビューだけ欠落してしまう 最初、開発マシンは2007だったのでバージョンの違いかと思って質問し下記サイトをアドバイスされたが、関係なかった http://support.microsoft.com/kb/2266789/ja 開発マシンとユーザーマシンのバージョンをすべて2010Plusに新規インストールしたが状況は変わらない  開発マシンのOSは WinXP、   アプリ用マシンのOSは WinServer2008R2(仮想サーバーとして使っている) 同じ環境の中でリストビューをつくって保存したものはちゃんと機能します 逆の方向、アプリ用マシン(2008R2)の中で作って保存したファイルを 開発用(XP)マシンの中で貼り付け開くとちゃんと機能します 今は アプリ用マシンの中で、もう一度、ユーザーフォームの中に手でリストビューコントロールを書き込んで動作させている リストビューコントロールは、Exel VBAにデフォルトで入っているActiveXコントロールではないので、忘れられているのでしょうかね 他のマシンで作ったリストビューを強制的に読み込む手段がないでしょうか 他に何か良い解決方法がありましたらお教えください

  • エクセルVBA リストビュー選択項目を別フォームへ

    皆さんこんにちは。 エクセル2013使用のVBA初心者です。 エクセルVBAのリストビューについて教えてください。 Userform1上にListview1とコマンドボタン1があります。 Listview1はSheet1を呼び込んだものが反映されており 左から駅名・顧客名・店舗名が記載されています。 Listview1でどれかを選択してコマンドボタン1を押したら Listview1で選択した項目の 駅名をUserform2のTextbox1に 顧客名を〃のTextbox2に 店舗名を〃のTextbox3に反映したいのですが リストビューの情報がネット上にも少なく コードをどのように書いたら良いか見当がつきません。 Userform2のPrivate Sub UserForm_Initialize()に TextBox1 = UserForm1.ListView1.FocusedItem.SubItems(0).Text を記載してみたものの、コンパイルエラーが出てしまいます。 (スイマセン、あまり意味が分かっていないで書きました) リストビューで選択した項目を別のユーザーフォームに 反映させるにはどうしたら良いでしょうか? どなたかヒントをいただけると助かります。

  • excel VBA リストビューの行の変更

    質問させていただきます。EXCEL VBAのリストビューコントロールについて、 任意の行を、違う行間に挿入みたいなことはできるのでしょうか? (例えば、5行目を1行目と2行目の間に挿入) アドバイスを宜しくお願い致します。

  • エクセル VBA フォーム設定について

    いつもお世話になっています。 エクセル VBAでユーザーフォームについて教えてください。 あるシートのデータをフォームに読み込み、違うシートにそのデータを書き込んでいます。元データの列順と書き込むシートの列順が違うので、VBAで設定して使っています。 書き込みはうまくいっています。ただ、書き込む際にフォーム上で少しデータを修正して書き込みを行うのですが、編集したいフォーム上のテキストボックスをクリックすると、データの最後のほうにカーソルが飛んでしまいます。 テキストボックスをできるだけ大きくして対応していますが、限度があります。テキストボックスをクリックした際にデータの最後(文字データで言うと文章の最後を表示してしまう)まで動かずに、クリックしても先頭のままになるようにするにはどうすればいいのでしょうか。 同じように、コンボボックスもクリックするとリストの最後から表示されます。リストの先頭から表示させる方法を教えてください。

  • リストビューの初期化について

    リストビューのアイテム(編集可能なところ)とサブアイテム(基本的には編集不可のところ)の表示位置(列)をプログラムから変更できるのでしょうか? 一列目にサブアイテム:1 二列目にサブアイテム:0という形にしたいのですが。。。 ご存知の方いらっしゃいましたらお願いいたします。

  • 【vb6】リストビューへのアイコンの追加

    お世話になります。 vb6のリストビューについて質問があります。 リストビューに作った複数の列(現状はヘッダーで区切っただけの擬似的なもの)に対して、 例えば”1行目の4列目にアイコンを設定する"といった事をやりたいのが方法がわかりません。 グリッドを使えば楽なのは分かっているのですが、今回は見た目の都合上リストビューで作りたいと考えています。 またAPIを使えば画面に絵を貼り付けられるのも承知していますが、そのようなことをしなくても 標準の機能でアイコンを追加することは出来ると昔聞いたもので、APIではない方法を探しています。 どなたかご存知の方がいらっしゃればどうか教えてください。 よろしくお願いします。

  • Excel 2010 VBAの 2007との互換性

    Excel2007で作った VBA ユーザーフォームの リストビューが 2010で読むとすべて欠落してしまいます 2010単独で作るとちゃんと動きますので 2007との互換性ができていないように見えます 良い解決方法があったらお教えいただきたく

  • リストボックスの列見出し(ExcelのVBA)

     ExcelのVBAでのリストボックスコントロールについての質問です。  リストボックスの列見出しを作りたいのですが、なかなか上手く行きません。リストボックスに項目を設定するのはExcelのシートから… ----- WorkSheets("Sheet1").ListBox1.ListFillRange = "A1:B2"  ↑(Sheet1のA1:B2のデータをListBox1に追加する場合)↑ ----- のようにするのではなく… ----- Dim MyList(1,1) ~~~(MyList配列にデータを代入) Userform1.ListBox1.Column = Mylist() -----  というように、コードから項目を追加しています。  そこで、列見出しを追加したいと思ったのですが… ----- ListBox1.ColumnHeads = True ----- と記述しても、列見出しは真っ白で、その下に項目が表示されるだけです。  列見出し専用の配列を用意しなければならないというような事はあるのでしょうか?  もしあれば、どのように定義すればよいのでしょうか。  ちなみに、用いているExcelの環境は『Microsoft Excel 2004 for Mac (11.5.6)』、VBAの環境は『Microsoft Visual Basic (11.5)』です。  我流で覚えてきたような知識ですので、とても常識的な事を聞いているかもしれないですが、回答宜しくお願いします。

  • エクセルVBAについて質問です。

    エクセルVBAについて質問です。 シート1のユーザーフォームにコンボボックスとテキストボックスが各1つずつ、 シート2のA列には1行目から順に「あ」「い」「う」と文字が入っていて、B列には「1」「2」「3」と値が入っています。 コンボボックスのリストにはシート2のA列の文字が選択できる状態にあります。 この状態で、例えばコンボボックスで「い」を選んだら、テキストボックスに自動的に「2」と入る、というように、コンボボックスのリストの中から任意の文字を選択したときに、テキストボックスにB列の値が入るようにするにはどのようにすればいいのでしょうか?よろしくお願いします。

  • エクセルのリストボックスについて

    エクセルのフォームにリストボックスというものがありますが、 コントロールの書式設定→コントロール→選択の種類で複数選択 と拡張選択は、VBAで使用するために存在しているのでしょうか? VBAを使用せずとも使い道があるようでしたら教えてください。

専門家に質問してみよう