• ベストアンサー

超基本 変数への代入教えてください。

dim mychr as string * 255 mychrという変数を255個宣言しているのは分かりますが、どうやって代入するかが分かりません。ちなみに mychr=vbnullstring '初期化 mychr="ABCDEFG" mychr="A" mychr(0)="A" 全部だめでした、本で調べるにも調べようがなく、ご教授お願いいたします。

noname#147912
noname#147912

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

文字列の配列を定義して使うケースでしょう。 昔のBasicには、文字列の長さ(バイト長)指定の為に、*255などの指定ができたが、VBになってそういう指定はなくなった。 Dim a(10) as string などを使う (例) Sub test01() Dim a(10) As String a(0) = 1 a(1) = "abc" a(2) = "asd" a(3) = "奈良" For i = 0 To 4 MsgBox a(i) Next i End Sub ーー Variant変数をつかう Sub test02() Dim X As Variant X = Array(1, "A", "京都", "123", 0) For i = 0 To 4 MsgBox X(i) Next i End Sub ーーー VB.NET などでは、配列の初期化にNewがいる。 変数の型として、Variant型がなくなった。 www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_02/vbnet2_02_01.html http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/chapter4_2.aspx

その他の回答 (2)

回答No.2

>mychrという変数を255個宣言している これが間違いです。 No1の人も書いてますが、この宣言は 「サイズ255バイト(「255文字」かも)の固定長文字列」 の固定長文字列になります。 なので、変数の数は一つです。

回答No.1

Option Explicit 'VB.NETでは固定長文字列はサポートされない 'http://www.microsoft.com/japan/msdn/net/vbtransitionguide/chapter4/chapter4_7.aspx 'からVB6.0なのはまぁいいとして '以下のソースをExcel VBAで動かしてABCDEFGがきちんと表示されたけどなぁ? Sub hoge() Dim mychr As String * 255 mychr = vbNullString mychr = "ABCDEFG" MsgBox (mychr) End Sub

関連するQ&A

  • 変数にnullを代入するには

    諸事情で、変数の値をNullにしたいのですが、 Sub a() Dim mystr As String mystr = "moji" '他の処理 mystr = Null End Sub だと、実行時エラー94になります。 多分、NULLは値じゃないから代入できないんだと思いますが、どうすれば変数をnullにできるのでしょうか? String型が問題であれば、何にすればいいですか?

  • 変数を動的に作るには?

    変数を作成する際には必要な分だけ一つずつ宣言する必要があるのでしょうか? 例えば、連番を格納する文字列型変数を一時的に100個必要だとすると Dim textdat1 As String = "Number1" Dim textdat2 as String = "Number2" Dim textdat3 as String = "Number3"      ・      ・      ・ と100個宣言しないといけないと思うのですがこれを For i As Integer = 1 To 100 Dim textdat(i) As String = "Number" & i Next i という様な形で変数を作成することは出来ないのでしょうか。 初歩的な質問かもしれませんが、よろしくお願いします。

  • 変数の代入について

    他のファイルを参照し変数に代入しましたが 参照式まで代入されてしまいますが、これを回避したいです。 ='C:\フォルダ名\[ファイル名.csv]シート名'!$A$1 理由としては、参照先を知られたくないためです。 Dim A(9) As Variant A(0) = Path & "!$A$1" 'ここの部分の書き方を教えてください。 .Range("B1").Value = A(0) 変数は入力ミスをした場合に元に戻すために使います。

  • サブフォームに変数を代入し、RecordSourceの値を取得したい

    サブフォームに変数を代入し、RecordSourceの値を取得したいのですがうまくいきません。 Sub test1() Dim サブフォーム As String Dim フォーム As String フォーム= "土台" サブフォーム = "フォーム1" MsgBox Form_フォーム1.RecordSource End Sub ******************************************************************* Sub test2() Dim サブフォーム As String Dim フォーム As String フォーム= "土台" サブフォーム = "フォーム1" MsgBox Form_フォーム1.RecordSource MsgBox Forms(フォーム).Controls(サブフォーム).RecordSource End Sub オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) ******************************************************************* Sub test3() Dim サブフォーム As String Dim フォーム As String フォーム = "土台" サブフォーム = "フォーム1" MsgBox Forms(サブフォーム).RecordSource End Sub 実行時エラー'2450' マクロの式またはVisual Basic コート゛で参照されている 'フォーム名'フォームが見つかりません。 ******************************************************************* test1~3のうち test1のみはうまくいくのですが 変数を代入したいです。 ヘルフ゜のには Forms![受注]![受注サブフォーム].Formとなってますが これじゃ変数を代入できないですよね。 どうすればサブフォームに変数を代入しつつ、RecordSourceの値を取得できるのでしょうか? よろしくお願いします。

  • public変数

    formA で dim test as New fromB test.m_foo = "分かりません" と値を代入し fromB で public変数 Public m_foo as string を宣言しています その他の formC, formD, formE で formBのpublic変数m_fooを使用したい場合  例 formC 上で宣言している変数 ANS に代入したい場合    formC に ANS = formB.m_foo と記述しても上手くいきません どのように記述したら  formB で宣言しているpublic変数を他のformでも使用できるのでしょうか?     

  • 格納?代入?

    日本語の質問かもしれないのですが教えてください。 Sub sanpuru() Dim a As String a = "test" '←これの動作をなんと言う? End Sub のa = "test"の動作は、 「変数に値を格納している」と言うのですか? それとも 「変数に値を代入している」と言うのですか?

  • VB6にて文字型変数の内容をオブジェクト変数に代入する方法

    VB初心者ですが オブジェクト変数に文字型変数で作成した オブジェクト名を代入したいのですが 上手くいきません。 Dim anyCmb As ComboBox Dim cmb_name As String cmb_name = "ABC" Set anyCmb = cmb_name 誰かわかる方がいましたら、教えてください。 よろしくお願いします。

  • 「変数の宣言」と「変数の定義」は同じ意味ですか?

    Dim myStr As String は、変数の宣言と定義、どちらになるのでしょうか? どちらともいいますか?

  • なぜ値が代入されるのかわからない

    Sub Sample1() Dim 文字 As String 文字 = "あああ" Call Sample2(文字) 'プロシージャSample2の引数に変数を渡して呼び出す End Sub Sub Sample2(a As String) MsgBox a End Sub ---------------------------------- をやってみて疑問なのですが、 なぜ a = 文字 がないのに、 aに”あああ”が代入されるのでしょう? aにウォッチ式の追加をあてて、F8で一行ずつステップインしてみると Sub Sample2(a As String) の部分で、 aに””あああ”が代入されています。 a = 文字 と Sub Sample2(a As String) は 同じ意味なのでしょうか?

  • VBA モジュールで共通に使う変数の宣言方法

    VBAにてプログラミングを覚えている者です。 現在、いくつかのモジュールがあり、それぞれDimにて宣言している共通の変数があります。 いくつものプロシージャに毎回宣言せず、どこかでひとまとめにしたいと思い、色々と調べています。 例えば、 Dim pic1 As Picture Dim cell1 As String Dim pass1 As String Dim pic2 As Picture などです。 Dimのほかに、Publicの宣言などがありますが、いま一つ使い方がピンときません。 共通宣言する変数をひとつのモジュールとして登録し、活用できると、いざ変更となったときに その内容だけ置き換えればいいと思うのですが、みなさんはどのように宣言をしていますか? (例えば、Stringなどは各モジュールで変更するのが大変だと思うのですが・・・) ヒントを教えていただければと思います。よろしくお願いします。

専門家に質問してみよう