ホーム
おまかせ表示
最近の更新
特別ページ
コミュニティ・ポータル
設定
MochiuWiki : SUSE, EC, PCBについて
免責事項
MochiuWiki : SUSE, EC, PCB
検索
利用者メニュー
ログイン
Visual Basic 6の基礎 - 変数のソースを表示
←
Visual Basic 6の基礎 - 変数
📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは
2026年9月に閉鎖
いたします。
移転先は
https://mochiu.net/index.php?title=Visual Basic 6の基礎 - 変数
です。
新しい記事は移転先で追加しております。
(旧サイトでは記事を追加しておりません)
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == 変数は、プログラム内でデータを一時的に格納するためのメモリ領域である。<br> 変数名を使用してデータにアクセスして、プログラムの実行中に値を変更することができる。<br> <br> また、<code>Option Explicit</code>キーワードを使用するこにより、全ての変数を明示的に宣言する必要があり、タイプミスによるバグを防ぐことができる。<br> <br> Visual Basic 6は様々なデータ型を提供している。<br> * 数値型 (Integer、Long、Single、Double) *: 計算処理に使用される。 * 文字列型 (String) *: テキストデータの処理に使用される。 * 論理型 (Boolean) *: 真偽値の判定に使用される。 * 日付型 (Date) *: 日付と時刻の処理に特化している。 * Variant型 *: あらゆるデータ型を格納できる柔軟な型である。 <br> 変数のスコープは、その変数がアクセス可能な範囲を定義する。<br> モジュールレベル変数はそのモジュール全体で、プロシージャレベル変数はそのプロシージャ内でのみ有効である。<br> <br> <code>Private</code>キーワードは同じモジュール内でのみアクセス可能、<code>Public</code>キーワードはプロジェクト全体からアクセス可能な変数を定義する。<br> <code>Static</code>変数はプロシージャが終了しても値を保持する特殊な変数である。<br> <br> 固定長配列は宣言時にサイズを指定、動的配列は実行時にサイズを変更できる。<br> <code>ReDim</code>ステートメントで配列のサイズを変更でき、<code>Preserve</code>キーワードを使用すると既存のデータを保持したままサイズを変更することができる。<br> <br> また、Collection、Dictionary等のオブジェクトを使用することにより、柔軟なデータ管理が可能である。<br> <br><br> == Option Explicit == <code>Option Explicit</code>を使用する場合、全ての変数を明示的に宣言する必要がある。<br> これにより、タイプミスによるバグを防ぐことができる。<br> <br><br> == 基本的なデータ型 == 各変数は、<code>Dim</code>キーワードを使用して宣言する。<br> 変数名の後に<code>As</code> <データ型>を指定して、変数の型を定義する。<br> <br> 整数型には範囲があり、その範囲を超えるとオーバーフローエラーが発生する。<br> <br> <syntaxhighlight lang="vb"> Option Explicit ' 変数の明示的な宣言を強制 ' 変数の定義 Dim intNumber As Integer '整数型 (-32,768 ~ 32,767) Dim lngNumber As Long '長整数型 (-2,147,483,648 ~ 2,147,483,647) Dim sngNumber As Single '単精度浮動小数点型 Dim dblNumber As Double '倍精度浮動小数点型 Dim strText As String '文字列型 Dim blnFlag As Boolean '論理型 (True / False) ' 値の代入 intNumber = 100 lngNumber = 1000000 sngNumber = 3.14 dblNumber = 3.14159 strText = "サンプルテキスト" blnFlag = True </syntaxhighlight> <br><br> == 配列 == Visual Basic 6の配列には、固定長配列と動的配列の2種類がある。<br> <br> Visual Basic 6の配列は、0から始まる。<br> <br> ==== 固定長配列 ==== 固定長配列は宣言時にサイズを指定するため、後でサイズを変更することはできない。<br> <br> <syntaxhighlight lang="vb"> ' 固定長配列 Dim arrFixed(5) As String '6要素の配列(0~5) ' 配列への値の代入 For i = 0 To 5 arrFixed(i) = "要素" & i Next i </syntaxhighlight> <br> ==== 動的配列 ==== 動的配列は<code>ReDim</code>キーワードを使用して、サイズを変更することができる。<br> <br> また、<code>Preserve</code>キーワードを使用する時、既存のデータを保持したままサイズを変更できる。<br> <br> <syntaxhighlight lang="vb"> ' 動的配列 Dim arrDynamic() As Integer Dim i As Integer ' 動的配列のサイズ設定 ReDim arrDynamic(10) ' 配列のサイズ変更 (既存データは消去) ReDim arrDynamic(20) ' 配列のサイズ変更 (既存データを保持) ReDim Preserve arrDynamic(30) </syntaxhighlight> <br><br> == Collection == キーと値のペアを管理できるが、キーは文字列のみである。<br> 順序が保持され、インデックス番号でもアクセス可能である。<br> <br> 主に、データの順序付きリストとして使用される。<br> <br> * Countプロパティ *: 要素数を取得する。 * Itemメソッド *: 要素を取得する。(デフォルトメソッド) * Beforeメソッド / Afterメソッド *: 特定の位置に項目を挿入する。 <br> <syntaxhighlight lang="vb"> Dim colItems As New Collection ' 項目の追加(Add) colItems.Add "データ1", "key1" colItems.Add "データ2", "key2" colItems.Add "データ3" 'キー省略可能 ' 項目の取得 Debug.Print colItems("key1") 'キーで取得 Debug.Print colItems(1) 'インデックスで取得 ' コレクションの走査 Dim varItem As Variant For Each varItem In colItems Debug.Print varItem Next ' 項目の削除 colItems.Remove "key1" 'キーで削除 colItems.Remove 1 'インデックスで削除 </syntaxhighlight> <br><br> == Dictionary == より柔軟な連想配列である。<br> キーには文字列以外の型も使用でき、任意の型の値を格納することができる。<br> <br> ハッシュテーブルベースで実装されているため、大量のデータを扱う場合はCollectionより高速である。<br> <br> また、Exists関数でキーの存在が確認できる。<br> ただし、インデックス番号での参照はできない。<br> <br> <syntaxhighlight lang="vb"> Dim dicItems As New Dictionary ' 項目の追加 dicItems.Add "名前", "山田太郎" dicItems.Add "年齢", 30 dicItems.Add "住所", "東京都" ' 項目の取得 Debug.Print dicItems("名前") ' 存在確認 If dicItems.Exists("年齢") Then Debug.Print dicItems("年齢") End If ' 項目の変更 dicItems("住所") = "大阪府" ' 全てのキーを取得 Dim varKey As Variant For Each varKey In dicItems.Keys Debug.Print varKey & ": " & dicItems(varKey) Next ' 項目の削除 dicItems.Remove "住所" ' 全項目の削除 dicItems.RemoveAll </syntaxhighlight> <br><br> == 日付 / 時刻の変数 == 日付 / 時刻を扱うための専用データ型である。<br> <br> 日付 / 時刻関数<br> * Now *: 現在の日時を取得 * Date *: 現在の日付を取得 * Time *: 現在の時刻を取得 * DateAdd *: 日付の加算 / 減算 * DateDiff *: 日付の差分計算 * Format *: 日付 / 時刻の書式設定 <br> フォーマット文字列の主な指定子<br> * yyyy *: 4桁の年 * mm *: 月 * dd *: 日 * hh *: 時 * nn *: 分 * ss *: 秒 <br> <syntaxhighlight lang="vb"> Dim dtNow As Date Dim dtCustom As Date dtNow = Now ' 現在の日時を取得 dtCustom = #1/23/2025 14:30:00# ' 特定の日時を指定 ' 日付/時刻のフォーマット Debug.Print "現在: " & Format(dtNow, "yyyy/mm/dd hh:nn:ss") Debug.Print "指定日時: " & Format(dtCustom, "yyyy/mm/dd hh:nn:ss") </syntaxhighlight> <br><br> == バリアント型 == Variant型は、あらゆる型のデータを格納できる汎用データ型である。<br> <br> 型変換が自動的に行われるため、異なる型のデータを扱う場合に便利である。<br> ただし、メモリ使用量が多い、型の安全性が低い、実行速度が遅い等のデメリットもある。<br> <br> <syntaxhighlight lang="vb"> Dim varData As Variant ' 数値として使用 varData = 100 ' 自動的に数値型として解釈 Debug.Print varData + 50 ' 数値計算が可能 ' 文字列として使用 varData = "テスト" ' 自動的に文字列型として解釈 Debug.Print varData & "文字列" ' 文字列連結が可能 ' 日付として使用 varData = #1/23/2025# ' 自動的に日付型として解釈 </syntaxhighlight> <br><br> == オブジェクト変数 == オブジェクト変数は、<code>Set</code>キーワードを使用して値を代入する。<br> オブジェクトのインスタンスを生成する場合は、<code>New</code>キーワードを使用する。<br> <br> <u>オブジェクト変数は、使用後に<code>Nothing</code>を代入して解放することが推奨される。</u><br> <br> また、<code>CreateObject</code>関数を使用してActiveXオブジェクトを生成することもできる。<br> <br> コレクションやディクショナリは、データを効率的に管理するために使用される。<br> <br> <syntaxhighlight lang="vb"> Dim objForm As Form Dim objControl As Control Dim colItems As Collection Dim dicData As Dictionary ' フォームのインスタンス作成 Set objForm = New Form1 ' コレクションの使用 Set colItems = New Collection colItems.Add "項目1" colItems.Add "項目2" ' ディクショナリ (連想配列) の使用 Set dicData = CreateObject("Scripting.Dictionary") dicData.Add "key1", "値1" dicData.Add "key2", "値2" '参照の解放 Set objForm = Nothing Set colItems = Nothing Set dicData = Nothing </syntaxhighlight> <br><br> == 変数のスコープ == 変数のスコープは、宣言の場所と使用するキーワードによって決まる。<br> <br> * Private変数 *: 同じモジュール内でのみアクセス可能である。 * Public変数 *: プロジェクト内のどこからでもアクセス可能である。 * Static変数 *: プロシージャが終了しても値が保持される。 * ローカル変数 *: プロシージャ内でのみ有効である。 <br> <syntaxhighlight lang="vb"> ' モジュールレベル変数 Private m_strGlobalVar As String Public g_strPublicVar As String Private Sub ScopeExample() ' ローカル変数 Dim strLocalVar As String Static strStaticVar As String '静的変数 ' プロシージャ内でのみ有効 strLocalVar = "ローカル変数" ' 値が保持される strStaticVar = "静的変数" ' モジュール内でアクセス可能 m_strGlobalVar = "プライベート変数" ' 他のモジュールからもアクセス可能 g_strPublicVar = "パブリック変数" End Sub </syntaxhighlight> <br><br> == 列挙型 == 列挙型 (Enum) は、関連する定数値をグループ化して名前を付ける機能である。<br> <br> <syntaxhighlight lang="vb"> Private Enum ColorType Red = 1 Blue = 2 Green = 3 End Enum Private Sub EnumExample() Dim myColor As ColorType myColor = Blue Select Case myColor Case Red Debug.Print "赤が選択されました" Case Blue Debug.Print "青が選択されました" Case Green Debug.Print "緑が選択されました" End Select End Sub </syntaxhighlight> <br><br> == 型変換 == * CInt関数 *: 整数型に変換 * CLng関数 *: 長整数型に変換 * CSng関数 *: 単精度浮動小数点型に変換 * CDbl関数 *: 倍精度浮動小数点型に変換 * CStr関数 *: 文字列型に変換 * CBool関数 *: 論理型に変換 * CDate関数 *: 日付型に変換 <br> <u>※注意</u><br> <u>変換時にデータが範囲外の場合はエラーが発生する。</u><br> <u>数値から文字列への変換は、<code>Str</code>関数と<code>CStr</code>関数で動作が異なる。</u><br> <br> <u>また、変換前にデータの妥当性の確認を行うことが推奨される。</u><br> <br> <syntaxhighlight lang="vb"> Dim strNumber As String Dim intValue As Integer Dim dblValue As Double strNumber = "123" intValue = CInt(strNumber) ' 文字列から整数へ dblValue = CDbl("123.45") ' 文字列から倍精度へ Debug.Print Str(intValue) ' 数値から文字列へ Debug.Print CStr(dblValue) ' 数値から文字列へ </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:その他]]
Visual Basic 6の基礎 - 変数
に戻る。