ナビゲーションフォームで、フォームを選択するたびに選択したフォームの初期化処理がされ不便なので、タブコントロールとサブフォームに変更しようと思います。
そこで、ナビゲーションフォームのコントロール類のプロパティ(配置位置)を記録しておきたいと思います。プロパティシートの表示から項目と値全部をコピー&ペーストしようとしたのですが、できませんでした。
そのためVBAで行うことにしました。
CSVは下記の形式を想定しています。
|コントロール名|幅|高さ|上位置|左位置
|:--|:--:|--:|
Auto_Header0|1500|300|200|400
botton1|200|400|50|6000
botton2|300|200|100|6000
VBAで、コレクション「controlProperty」に、最初に「コントロール名」などを項目名として追加、次いで各コントロールのプロパティを追加します。その後、CSVファイルに出力します。
VBA
1Private Sub Form_Load() 2 3 Dim controlProperty As Collection 4 Set controlProperty = New Collection 5 Dim ctrl As Control 6 With controlProperty 7 .Add Item:="コントロール名" 8 .Add Item:="幅" 9 .Add Item:="高さ" 10 .Add Item:="上位置" 11 .Add Item:="左位置" 12 For Each ctrl In Controls '各コントロールの値を追加 13 .Add Item:=ctrl.Name 14 .Add Item:=ctrl.Width 15 .Add Item:=ctrl.Height 16 .Add Item:=ctrl.Top 17 .Add Item:=ctrl.Left 18 Next 19 End With 20 21 'CSVファイルに出力 22 Open "C:\date\データ.csv" For Output As #1 23 Dim i As Integer, str As String 24 For i = 1 To controlProperty.Count 25 str = str & controlProperty(i) & "," 26 If i Mod 5 = 0 Then str = Left(str, Len(str) - 1): Print #1, str: str = "" 27 Next 28 Close 1 29 30End Sub
質問:プロパティ シートの表示からコピー&ペーストすることはできないのでしょうか。またコピー&ペーストできない場合に、VBAで短いコードで書く方法や、他の方法は無いでしょうか。よろしくお願いします。
あなたの回答
tips
プレビュー