
お世話になっております。
現在、ExcelVBAで、シート上のある情報を、フォーム上のListViewコントロールに移し、時間と共に上から反転(選択状態)となるコーティングをしています。
(例:↓リスト[ListViewコントロール])
名前1 , 0:05
名前2 , 0:03
名前3 , 0:10
・・・
↑この場合、「スタート」ボタンを押すと同時に、5秒経つと「名前1」の行が、さらにそこから3秒経つと「名前2」の行が選択状態になるといった代物です。
ここで例えば「名前2」のListItemと「名前3」のListItemのリストの順番を逆にしようとした場合、選択した瞬間に、今まで選択状態だったものが解けてしまいます。おまけにこのListViewコントロールはセルのバックカラーを変更することもできません。
説明が長くなってしまったのですが、同じようなコントロールで、「FlexGrid」・「DataGrid」・「DataList」等いろいろありますが、セルのバックカラーを自由に変えれるコントロールはありますでしょうか?もしくはこれらのコントロールの使用方法等を記載したサイト等を教えていただけないでしょうか?いろいろ探してはみたのですがなかなか見つかりません。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
> PCへのアプリケーションのインストール
ListView とか、FlexGrid などは VBA のコントロールではないですよ。
標準コントロール以外を使用すると、ライセンスがどうとか、、環境
によっては VB ランタイムのインストールが必要になったりしますが、
その点は OK ?
代替案としては、、
Office に付属してくるコントロールだと、Microsoft Office Spreadsheet
があります。
# これも Microsoft Office Web Components が Office の
# インストールオプションで選択されてないといけませんが。。
Userform 上で Excel のワークシート(に良く似たもの)を使うことが
できますよ。
ご参考までに。
KenKen_SPさん、お返事ありがとうございました。
返事が遅くなり、大変申し訳ございませんでした。
「Microsoft Office Spreadsheet」ですね!
一度調べてみます。
ありがとうございました。
No.2
- 回答日時:
私も#1のご意見を見る前にですが、たかがエクセルVBAで
ListViewやFlexGridなど使わなければならないのか、と思ってしまいいました。
VBなどで、正面からは表形式オブジェクトが無い環境で補うためにListViewなどを使うのではと思ってました。
折角エクセルを本拠にして処理するなら、シートで同じか似たこと
を実現できないのでしょうか。
例えばE列以右は表示しない
かつ16行目以下は表示しない、限定した表
行列番号などは非表示
メニュー、ツールバー、タイトルなどは非表示などVBAからなら自由に左右できまることはご存知でしょうが。
そしてエクセルの多彩な書式、条件付書式、入力規則などはもちろん利用できます。
VB慣れ、プログラム慣れして、エクセルそのものの機能の検討は十分ですか?したくない?
ーー
一定時間(それも短時間で)何か内容を変えるというのは、文系の仕事では、ニーズが良くつかめない。時々刻々変わるデータの受け取りなどならニーズはありますが。
才気に走りすぎている感じで、それを良いほうに生かしてください。
この回答への補足
imogasiさん、お返事ありがとうございました。
ニーズに対しては、No.1さんへの補足説明を見ていただければ・・・と思います。
>ListViewやFlexGridなど使わなければならないのか、と思ってしまいいました。
確かに私もこの件に関しては全く同意見で、機能だけならばExcelのシート上で事は足りてしまいます。
しかし、ユーザサイドの意見で、どうしてもフォームを使用してやりたいというのと、フォームのデザインまで決められてしまっているので、コントロールを使用してやらざるをえない状況なのです。
VB+スプレッドでの実現は可能なのですが、PCへのアプリケーションのインストールはやりたくない等の条件も出されてしまっているため、ExcelVBAでコーティングする羽目になった次第です。
ご理解下さい。
No.1
- 回答日時:
< さらにそこから3秒経つと>
目的が、解りません。
あなたから、見れば、テクニックを見せ付けたいのかもしれませんが、
ユーザーから見れば、百害あつて益なしの機能です。
ユーザーから見てどうすれば、楽にデータをinput 出来るのか考え直すべきですね。
また、セルのバックカラーとは、コントロールのセルのバックカラーのことでしょうか?。
もし、そうであれば、下記 コードを参考にして下さい。
Editorから表示⇒プロパティウィンドウで、コントロールのプロパティを確認出来ます。
Private Sub ToggleButton2_Click()
'背景を不透明または透明に設定します。
If ToggleButton2.Value = True Then
'TextBox2 の背景を透明にします。
TextBox2.BackStyle = fmBackStyleTransparent
Else
'TextBox2 の背景を不透明にします。
TextBox2.BackStyle = fmBackStyleOpaque
End If
End Sub
< コントロールの使用方法等を記載したサイト >
Office TANAKA とか VBA 即効テクニックとかで、検索してください。
この回答への補足
Nayuta_Xさん、お返事ありがとうございました。
>目的が、解りません。
説明不足ですいません。
目的としては、例えば工場のラインの工程をリスト上に表示して
「工程名、必要時間」
という表示がリストとして出ているとします。
ライン工程はリストの上から順にスタートするとして、VBAでは内部的にループ文でタイマー関数を作っており、時間が"必要時間"分経過した段階で、リスト行を反転させる作りになっております。
スタートを押した段階で、作業者の方たちがたまに画面をみて、「実際にはスタートから○分立ったから、今はこの工程をやってなきゃいけない」というのを、反転個所をみて確認します。(上から順にリストの行が反転されていく。時間と共に複数行反転していく)
そこで、自分の作業が送れているか否かの進捗を確認するような感じで使用します。
>あなたから、見れば、テクニックを見せ付けたいのかもしれませんが、
>ユーザーから見れば、百害あつて益なしの機能です。
とんでもございません。
私もプログラム初心者ですので、どんなコントロールが最適なのか検討もつかない段階です。
上記機能だけならListviewで問題なかったのですが、今回質問した理由として、「リスト行の入れ替え」という機能が発生したからです。
リストのある行を選択して、↑↓のボタンを押すと、リストの情報が上下に移動するといったものです。
この「ある行を選択」した瞬間に、上記で予定進捗分選択されたいた行の反転が消えてしまうため、「選択状態の反転」ではなく「行のバックカラーを変える」という部分に着目したのですが、現行で使用しているListviewコントロールは、セルのバックカラー自体を変えることは出来ないようです。
ですので変わりの別のコントロールを探している次第です。
ご理解頂けましたでしょうか?
コントロールの使用方法のサイトは一度検索してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- その他(コンピューター・テクノロジー) コントロール+Fキーについて 2 2022/10/03 16:59
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) 特定の位置にあるマクロボタンについて 2 2022/04/19 18:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
カメラスクロールするのを動画...
-
ActiveX コントロールの初期化
-
C# ウェブブラウザの上にtools...
-
TextBoxの入力規制
-
.NETについて質問です。
-
EXCEL(2003)にてアンケート作...
-
vsFlexArryのライセンスなどに...
-
ASP.NET
-
フォームに貼り付けないカスタ...
-
エクセル・VBA CheckBoxのオブ...
-
Image Thumbnail Controlで複数...
-
上と下のコントロール
-
VB5.0とVB6.0
-
chr関数の呼び出しで「プロ...
-
NASAスペースシャトル発着場の位置
-
バーコードを印刷したい
-
欲望は身を滅ぼしますか?でも...
-
Excel VBA ツールボックス 追加
-
最適なコントロールは??
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報