Excel VBA質問箱 IV

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

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


51444 / 76738 ←次へ | 前へ→

【30162】Re:構造体配列の初期化
発言  micnak  - 05/10/21(金) 5:17 -

引用なし
パスワード
   VBAの記法としては、ご希望のものはありませんので、事前の策として作ってやるということで、

まず、Quizesという名前のモジュールを作って以下のようにします。
======
Option Explicit

Public Type Quiz
 mondai As String
 kaito As String
 message As String
End Type

Dim QTable() As Quiz
Dim Index As Long
Sub Init()
 Index = -1
End Sub

Sub Add(mondai As String, kaito As String, message As String)
 Dim q As Quiz
 q.mondai = mondai
 q.kaito = kaito
 q.message = message
 Index = Index + 1
 
 ReDim Preserve QTable(Index)
 QTable(UBound(QTable)) = q
 
End Sub

Function Item(Index As Long) As Quiz
 Item = QTable(Index)
End Function

Function Count() As Long
 Count = Index + 1
End Function

'==========ここまで

以下がその使用例のマクロです。

Sub testQ()

 Quizes.Init
 'この辺が初期値の設定コード
 Quizes.Add "問題1", "回答1", "メッセージ1"
 Quizes.Add "問題2", "回答2", "メッセージ2"
 Quizes.Add "問題3", "回答3", "メッセージ3"
 Quizes.Add "問題4", "回答4", "メッセージ4"
 Quizes.Add "問題5", "回答5", "メッセージ5"
 
 
 '設定した値の使い方。
 Dim i As Long
 For i = 0 To Quizes.Count - 1
  Dim q As Quiz
  q = Quizes.Item(i)
  Debug.Print i, q.mondai, q.kaito, q.message
 Next
End Sub

0 hits

【30117】構造体配列の初期化 おぐら 05/10/19(水) 22:14 質問
【30119】Re:構造体配列の初期化 ichinose 05/10/19(水) 23:07 発言
【30120】Re:構造体配列の初期化 おぐら 05/10/19(水) 23:23 お礼
【30125】Re:構造体配列の初期化 Jaka 05/10/20(木) 9:43 発言
【30155】Re:構造体配列の初期化 bykin 05/10/20(木) 19:14 発言
【30162】Re:構造体配列の初期化 micnak 05/10/21(金) 5:17 発言
【30460】Re:構造体配列の初期化 おぐら 05/10/27(木) 22:27 お礼

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