MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Visual Basic 6の基礎 - 変数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
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の基礎 - 変数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse