5

VBA プロジェクトでは、ユーザー フォームを作成し、ツールボックス ウィンドウを使用してそれにコントロールを追加できます。デフォルトでは、ツールボックス ウィンドウには、Label、TextBox、ListBox などの単純なフォーム コントロールが含まれています。

追加のコントロールがマシンにインストールされている場合は追加できます。ツールボックスの [追加のコントロール] を右クリックすると、一連のコントロールがすべて表示されます。ただし、これはそれらがどこから来たのかを示すものではありません。

Office 2007 がインストールされているマシンで使用できることが保証されているコントロールを知りたいです。それは標準的なものだけですか、それとも「追加のコントロール」の一部も利用できることが保証されていますか (Office 2007 に付属しているため、または Office 2007 が実行される Windows のすべてのバージョンに存在するため)?

たとえば、Office 2007 にもツリービュー コントロールがないことに驚きました。「追加のコントロール」リストに「Microsoft TreeView コントロール v6」が表示されていますが、それがすべてに存在することに依存できるかどうかはわかりません。私の Office 2007 ユーザー。

4

1 に答える 1

6

表示されるコントロールはFM20.DLLの一部です。これは Office インストールの一部です。

[追加のコントロール] ボックスの [場所] 部分を見ると、それらがすべて同じ DLL の一部であることがわかります。

ここに画像の説明を入力

私の知る限り、これらはほとんどの Office インストールで使用できることが保証されている唯一のコントロールです。

そうは言っても、コメントで質問する各コントロールに対して具体的に何ができるかを見てみましょう。

  1. 「グリッド」対応リスト
  2. 階層ツリー ビュー
  3. カレンダー コントロール

グリッド

それはあなたの要件に帰着しますが、リストボックスを使用して逃げることができるかもしれません. VBA のリストボックスには、グリッドのようなものにするプロパティがいくつかあります。

たとえば、Excel のワークシートが次のようになっているとします。

ID001   Value 1 Description 1
ID002   Value 2 Description 2
ID003   Value 3 Description 3

リストボックスは複数の列をサポートしているため、リストボックス プロパティのColumnCount3に設定し、次のコードを記述して、これらの値を表示できます。

    Me.ListBox1.ColumnWidths = "50;100;200"
    Me.ListBox1.RowSource = Sheet1.Range("A1:C3").Address

次のようなものが得られます。 ここに画像の説明を入力

列を非表示にしますか? 列を非表示にするには、 ColumnWidthsプロパティの幅をゼロに変更します。

Me.ListBox1.ColumnWidths = "50;0;200" 'Hide column 2

ここに画像の説明を入力

そこから物事を選択できない場合、グリッドは何の役にも立ちませんよね?

リスト ボックスで、ListStyleプロパティをfrmListStyleOptionに変更し、 MultiSelectfrmMultiSelectに変更します。

これにより、グリッドのように見えるリストボックスが得られます。

ここに画像の説明を入力


カレンダー

2012 年 8 月 17 日更新:この投稿を読んでください。 回答者の 1 人が、独自のカレンダー コントロールを作成しました。

Office 用のカレンダー コントロール (mscal.ocx) があります。

ここに画像の説明を入力

ただし、適切な条件が満たされている必要があります。

  1. Access はクライアント マシンにインストールする必要があります
  2. このバージョンで削除されたため、Office のバージョンをOffice 2010にすることはできません( Microsoft Access から削除された機能を参照してください) 。

カレンダー コントロールを 2010 や Access Office 以外のインストールで動作させることはできますが、クライアントのマシンで追加の手順が必要になります。

  1. ダウンロードmscal.ocx
  2. windows/system32 ディレクトリに解凍します
  3. 登録する

ツリー表示

クライアントが一部の EXE をインストールすることが許容される場合は、Microsoft Visual Basic 6.0 Common Controlsをインストールすることができます。これにより、TreeView コントロールが提供されます。

ここに画像の説明を入力

ほとんどのマシン (特に Windows XP の古いマシン) には、これらの OCX が既にインストールされていると確信しています。したがって、インストールは必要ない場合があります。

最大の問題は、クライアント マシンに OCX を展開していて、サポートの観点からイライラすることです。

于 2012-07-25T14:59:51.143 に答える