![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
ユーザーフォームのlistviewについて質問です。
EXCLE:2013
データ表示にlistviewを使っているのですが
【その他のコントロール→Microsoft listview control】
使用するPCのエクセルにこれのチェックが入っていないと、ユーザーフォームを開いた際に項目名なし、またデータが散乱して表示されてしまいます。
違う支店でも同ブックを使っているため、私が毎回チェックを入れることもできず、上手く表示されなかったら電話で既存のlistviewを消す→チェックをいれてもらう→listviewを作成してもらうを繰り返してます。
その他のコントロールにlistview を自動で追加するマクロがあれば一番なんですが、
どうにか解決する方法はないでしょうか?
それともlistviewのように他のコントロールで表にすることはできますか?
LISTBOXを並べようかと思いましたが、横線が入っていないのでいまいち見にくいです。
Microsoft listview control チェック有
日時 運輸会社 担当者
3/2 ヤマト 佐藤
3/3 佐川 鈴木
3/5 佐川 岡島
Microsoft listview control チェックなし
3/2
3/3
3/5
No.2ベストアンサー
- 回答日時:
こんにちは、#1です。
>既存のlistviewを消す→チェックをいれてもらう→listviewを作成してもらう
読み飛ばしていたかもですが、既存のlistviewを消す。削除しないとダメと言う事かな?
その他のコントロールは、ツールボックスを表示すると現れる参照だったと記憶しています。
なので、①VBEのツール ⇒参照設定 (通常ここのリストにない)⇒ 参照で#1に示したパスの ActiveX コントロール(.ocx) を参照させます。
既存のlistviewを消す必要が見えませんが、表示からツールボックスを表示してツールボックス上で右クリック 又はVBE ツール 参照設定からその他のコ・・で
リストに出ます。しかし、この参照はツールボックスコントロールなので、実行のみの場合は、①で良いです。
①を実施してもツールボックスにはlistviewパーツはなく、その他のコントロールも参照されません。
電話で対応するのは大変かと思います。
ファイルを再配布できるなら、ThisWorkbookモジュールに下記を導入すれば多分OKだと思います。
しかし、Officeの64bitバージョンは PtrSafe 属性などを使ってもListViewは、うまくいかないようです。
Workbook_Openに他の処理がすでにある場合は、下の方にうまく組み込んでください。
Private Sub Workbook_Open()
On Error Resume Next
For Each refObj In ThisWorkbook.VBProject.References
If refObj.FullPath = "C:\WINDOWS\SysWOW64\MSCOMCTL.OCX" _
Or refObj.FullPath = "C:\Windows\System32\MSCOMCTL.OCX" _
Then Exit Sub '参照登録があれば、ここで抜ける
Next
#If Win64 Then
Const setRefFile As String = "C:\WINDOWS\SysWOW64\MSCOMCTL.OCX"
ActiveWorkbook.VBProject.References.AddFromFile setRefFile
#Else
Const setRefFile As String = "C:\Windows\System32\MSCOMCTL.OCX"
ActiveWorkbook.VBProject.References.AddFromFile setRefFile
#End If
MsgBox ("ListView 設定を実行しました。") '必要が無ければ削除
End Sub
#1の配布形です。
検証:Windows10 64bit Office Home and Business Excel 2013 MSO,
Office Home and Business premium Excel 2016 MSO
しつこく、すみません。
No.1
- 回答日時:
いくつか確認してください。
①フォームモジュールに Option Explicitは使用されていますか?
②ListView設定時、通常、UserForm_Initialize内でOn Error Resume Nextなどエラースキップを使用してませんか?
参照設定がなく実行された場合、ListViewプロパティ設定時にエラーになるはずと考えました。
エラーが発生しているのに、値をセットしている為の不具合かと、、
>その他のコントロール→Microsoft listview control
ListView作成時には必要ですが、使う時は同じ参照元の
Microsoft Windows common controls (6.0)の参照設定で良いはずです。2013
VBAの実行で参照する場合は、OS環境によりますが、デフォルトなら下記になります。
出来れば、参照されているかを
For Each refObj In ThisWorkbook.VBProject.References
refObj.FullPath とか refObj.Descriptionで確認して
参照されていなければ、設定するのが良いですがそれは、調べて作り込んでください。
そうすれば、配布ファイルのOpenなどに入れられますね。(このままいれてもよいですが、)
Sub Test_setRefFile()
On Error Resume Next 'すでに参照設定されている場合エラーが返されアラートが出るので抑制しています。Application.DisplayAlertsは効きません。
#If Win64 Then
Const setRefFile As String = "C:\WINDOWS\SysWOW64\MSCOMCTL.OCX"
ActiveWorkbook.VBProject.References.AddFromFile setRefFile
#Else
Const setRefFile As String = "C:\Windows\System32\MSCOMCTL.OCX"
ActiveWorkbook.VBProject.References.AddFromFile setRefFile
#End If
End Sub
的外れなら忘れてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ListView重複データ削除 2 2022/08/05 18:12
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Access(アクセス) アクセス フォームの自動入力 1 2023/03/20 00:18
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- フリーソフト libreoffice drawのツールバーのチェックが外れてしまう 1 2022/10/04 22:02
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボボックスの文字によるif...
-
Excel VBA で Richtextboxを使...
-
優しくされると甘えて調子に乗...
-
excel vbaでユーザーフォームに...
-
Excel VBA 動的に作成したチェ...
-
ExcelVBAのコントロールの種類...
-
IpadでZoomの音声を録音できる?
-
ワークシート上のコントロール...
-
エクセルVBAユーザーフォーム・...
-
現代文読解力開発講座の問題です。
-
VBAでタブのページを削除す...
-
VBAのエラーについて、”実行時...
-
間違えて配置してしまったコン...
-
チェックボックスをオンにした...
-
ユーザーフォーム上でFor Each...
-
エクセル・VBA CheckBoxのオブ...
-
【VB6】Timerコントロールは何...
-
複数のコマンドボタン(VBAで)...
-
「HTML」で始まるオブジェクト...
-
スマートウォッチについて質問...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
vb.netで画面のコントロールId...
-
EXCELでactivexコントロールを...
-
C#で角が丸いテキストボックス
-
(VBA)スピンボタンの大量...
-
chr関数の呼び出しで「プロ...
-
変数をコントロール型で使用す...
-
ExcelVBAでListViewが使用できない
-
VBAのエラーについて、”実行時...
-
間違えて配置してしまったコン...
-
VBAのフォームでTextBoxがいっ...
-
Groupboxの配下のコントロール...
-
excelのリストボックスで選択し...
-
ACCESS2010のVBAでフォーム内ク...
-
エクセルVBAでオプションボタン...
-
フォーム上の現在アクティブな...
-
ユーザーフォームで動的(Me.Con...
-
コンボボックスの文字によるif...
-
コントロールを移動できない
おすすめ情報