![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
ユーザーフォームの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ランキング
-
vb.netで画面のコントロールId...
-
カメラスクロールするのを動画...
-
VBAのエラーについて、”実行時...
-
[C#] ContextMenuStrip を呼び...
-
ASP.netのエラー 2005から2008...
-
エクセル・VBA CheckBoxのオブ...
-
コントロール配列と同じような...
-
C#で角が丸いテキストボックス
-
chr関数の呼び出しで「プロ...
-
もしフォームヘッダーにコント...
-
WebBrowserコントロールの基本...
-
Groupboxの配下のコントロール...
-
ACCESS2010のVBAでフォーム内ク...
-
c# イベントハンドラ 統一
-
C# Form上に配置されたコントロ...
-
Excelで、コンボボックスで選択...
-
Visual Basic 6.0 でPanelを使...
-
ACCESSフォームにコント...
-
VBA ユーザーフォームの Keypre...
-
Excelコマンドボタン名を変数に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
vb.netで画面のコントロールId...
-
C#,vb.netで業務用アプリ開発と...
-
EXCELでactivexコントロールを...
-
フォーム上の現在アクティブな...
-
ExcelVBAでListViewが使用できない
-
コンボボックスの文字によるif...
-
C#で角が丸いテキストボックス
-
エクセルVBAでオプションボタン...
-
ユーザーフォームで動的(Me.Con...
-
VBAのフォームでTextBoxがいっ...
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
(VBA)スピンボタンの大量...
-
Labelコントロールの(左右)余...
-
excelのリストボックスで選択し...
-
Excel VBA で Richtextboxを使...
おすすめ情報