Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45445 / 76732 ←次へ | 前へ→

【36280】Re:ファイルを開いた際に以前設定したコンボボックス内の値が変更されてしまう
発言  ともた  - 06/3/27(月) 14:34 -

引用なし
パスワード
   ▼Kein さん:
>現在、ボタンを押したとき起動するマクロは、どんなコードになってますか ?

少々長くなりますが・・・
1.:ボタン押下時
Private Sub BTN_KKK_INSRT_Click()

On Error GoTo Error

 Dim varGetFile As Variant
 
 'ファイルを開くダイアログを表示します。
 varGetFile = Application.GetOpenFilename("iniファイル(*.ini), *.ini", , "価格ファイル選択してください。")
 
 If varGetFile = False Then
  MsgBox "必要事項が空白のため、処理を中止します。"
  Exit Sub
 End If

 ' Iniファイルを読みこんで、取得した価格情報をExcel内へセットさせる
 If Not prvSetExcel(CStr(varGetFile)) Then
  MsgBox "価格情報設定に失敗しました。"
  Exit Sub
 End If
 
 Exit Sub
Error:
 
  MsgBox "予期せぬエラーです。" & vbNewLine & _
      Err.Number & vbNewLine & _
      Err.Description
  End
End Sub

2.:1.内より呼び出される関数
Private Function prvSetExcel(strGetFileName As String) As Boolean

 ' 変数の宣言
 Dim strFileName As String
 Dim Obj As OLEObject
 Dim varRackInfo(6, 2) As Variant
 
 prvSetExcel = False
 
 ' ファイル名
 strFileName = strGetFileName
 
 '***<< (初期費用)コロケーションサービス >>***
 ' オープンスペース
 Range("AX7").Value = prvGetIniString("Shoki_Koroke", "Open_Space", "0", strFileName)
 
 ' その他(個別電源・200V20A)
 Range("AF25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V20A", "0", strFileName)
 
 ' その他(個別電源・200V30A)
 Range("AN25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V30A", "0", strFileName)
 
 ' その他(個別電源・200V40A)
 Range("AV25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V40A", "0", strFileName)
 
 ' その他(個別電源・200V50A)
 Range("BD25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V50A", "0", strFileName)
 
 ' その他(個別電源・200V60A)
 Range("BL25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_200V60A", "0", strFileName)
 
 ' その他(個別電源・100V20A)
 Range("BT25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V20A", "0", strFileName)
 
 ' その他(個別電源・100V30A)
 Range("CB25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V30A", "0", strFileName)
 
 ' その他(個別電源・100V40A)
 Range("CJ25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V40A", "0", strFileName)
 
 ' その他(個別電源・100V50A)
 Range("CR25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V50A", "0", strFileName)
 
 ' その他(個別電源・100V60A)
 Range("CZ25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V60A", "0", strFileName)
 
 ' その他(個別電源・100V6A)
 Range("DH25").Value = prvGetIniString("Shoki_Koroke", "Kobetu_100V6A", "0", strFileName)
 
 '***<< (月額費用)コロケーションサービス >>***
 ' オープンスペース
 Range("BN7").Value = prvGetIniString("Getugaku_Koroke", "Open_Space", "0", strFileName)
 
 ' その他(個別電源・200V20A)
 Range("AF26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V20A", "0", strFileName)
 
 ' その他(個別電源・200V30A)
 Range("AN26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V30A", "0", strFileName)
 
 ' その他(個別電源・200V40A)
 Range("AV26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V40A", "0", strFileName)
 
 ' その他(個別電源・200V50A)
 Range("BD26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V50A", "0", strFileName)
 
 ' その他(個別電源・200V60A)
 Range("BL26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_200V60A", "0", strFileName)
 
 ' その他(個別電源・100V20A)
 Range("BT26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V20A", "0", strFileName)
 
 ' その他(個別電源・100V30A)
 Range("CB26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V30A", "0", strFileName)
 
 ' その他(個別電源・100V40A)
 Range("CJ26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V40A", "0", strFileName)
 
 ' その他(個別電源・100V50A)
 Range("CR26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V50A", "0", strFileName)
 
 ' その他(個別電源・100V60A)
 Range("CZ26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V60A", "0", strFileName)
 
 ' その他(個別電源・100V6A)
 Range("DH26").Value = prvGetIniString("Getugaku_Koroke", "Kobetu_100V6A", "0", strFileName)
 
 '***<< (初期費用)ネットワークサービス >>***
 ' セグメント設定費
 Range("AX8").Value = prvGetIniString("Shoki_NW", "Seg", "0", strFileName)
 
 ' 専用接続100MB
 Range("AX9").Value = prvGetIniString("Shoki_NW", "Senyo_100MB", "0", strFileName)
 
 ' 専用接続1GB
 Range("AX10").Value = prvGetIniString("Shoki_NW", "Senyo_1GB", "0", strFileName)
 
 '***<< (月額費用)ネットワークサービス >>***
 ' 専用接続100MB
 Range("BN9").Value = prvGetIniString("Getugaku_NW", "Senyo_100MB", "0", strFileName)
 
 ' 専用接続1GB
 Range("BN10").Value = prvGetIniString("Getugaku_NW", "Senyo_1GB", "0", strFileName)
 
 ' 共用接続100MB
 Range("BN11").Value = prvGetIniString("Getugaku_NW", "Kyoyo_100MB", "0", strFileName)
 
 ' 共用接続1GB
 Range("BN12").Value = prvGetIniString("Getugaku_NW", "Kyoyo_1GB", "0", strFileName)
 
 ' 基本料金
 Range("DP26").Value = prvGetIniString("Kihon", "Tanka", "0", strFileName)
 
 ' コンボボックス内へセットする値を配列にセット<<(初期費用)・(月額費用)・ラック仕様の順>>
 varRackInfo(0, 0) = "0"
 varRackInfo(0, 1) = "0"
 varRackInfo(0, 2) = ""
 
 varRackInfo(1, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_1", "0", strFileName))
 varRackInfo(1, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_1", "0", strFileName))
 varRackInfo(1, 2) = "1/2ラック 60A : 100V/30A ×2"
 
 varRackInfo(2, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_2", "0", strFileName))
 varRackInfo(2, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_2", "0", strFileName))
 varRackInfo(2, 2) = "1/2ラック 60A : 100V/30A ×4"
 
 varRackInfo(3, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_3", "0", strFileName))
 varRackInfo(3, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_3", "0", strFileName))
 varRackInfo(3, 2) = "1/2ラック その他"
 
 varRackInfo(4, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_4", "0", strFileName))
 varRackInfo(4, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_4", "0", strFileName))
 varRackInfo(4, 2) = "1ラック   60A : 100V/30A ×2"
 
 varRackInfo(5, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_5", "0", strFileName))
 varRackInfo(5, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_5", "0", strFileName))
 varRackInfo(5, 2) = "1ラック   60A : 100V/30A ×4"
 
 varRackInfo(6, 0) = CStr(prvGetIniString("Shoki_Koroke", "Rack_6", "0", strFileName))
 varRackInfo(6, 1) = CStr(prvGetIniString("Getugaku_Koroke", "Rack_6", "0", strFileName))
 varRackInfo(6, 2) = "1ラック   その他"
 
 ' 存在しているコンボボックス内の隠し列にセット
 For Each Obj In ActiveSheet.OLEObjects

  If Obj.Name Like "ComboBox*" Then
   Obj.Object.ColumnCount = 3        '表示列数の設定
   Obj.Object.ColumnWidths = "0cm;0cm;4.0cm"
   Obj.Object.List = varRackInfo
   Obj.Object.ListIndex = -1
  End If
 Next
 
 prvSetExcel = True
End Function


すぐ、直上のFor文にて、シート上に存在するコンボボックスに値をセットしております。
7 hits

【36269】ファイルを開いた際に以前設定したコンボボックス内の値が変更されてしまう ともた 06/3/27(月) 12:05 質問
【36272】Re:ファイルを開いた際に以前設定したコン... Kein 06/3/27(月) 12:52 発言
【36275】Re:ファイルを開いた際に以前設定したコン... ともた 06/3/27(月) 13:47 回答
【36278】Re:ファイルを開いた際に以前設定したコン... Kein 06/3/27(月) 14:24 発言
【36280】Re:ファイルを開いた際に以前設定したコン... ともた 06/3/27(月) 14:34 発言
【36281】Re:ファイルを開いた際に以前設定したコン... Kein 06/3/27(月) 15:12 回答
【36287】Re:ファイルを開いた際に以前設定したコン... ともた 06/3/27(月) 16:03 発言
【36291】Re:ファイルを開いた際に以前設定したコン... ともた 06/3/27(月) 16:22 発言
【36293】Re:ファイルを開いた際に以前設定したコン... ともた 06/3/27(月) 16:38 お礼
【36292】Re:ファイルを開いた際に以前設定したコン... Kein 06/3/27(月) 16:30 回答

45445 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free