ここから本文です

VBAの変数の型について質問です。

kir********さん

2017/9/2803:59:22

VBAの変数の型について質問です。

以下の As Longはなぜ As Stringじゃダメなのでしょうか?
i自体は数値ではなく、文字列なのでStringを使うと思ったのですが、As String だと、「コンパイルエラー:型が一致しません。」が出てしまいました。
Sub 成績表作成()
____Dim i As Long
____
____For i = 7 To 16

閲覧数:
62
回答数:
6
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ina********さん

2017/9/2809:55:25

>i自体は数値ではなく、文字列なのでStringを使うと思ったのですが

変数名と変数の型を混同していませんか。

変数名は数字以外から始まる一連の文字列で表します。
(予約語はNGなど細かな規定もありますが、概ねです。)


以下はOK
A, Bcd, i, j, xyz123, A1B2

以下はNG
1, 1A, 9876b


変数の型はその変数に入れることが出来るものを指定します。

String型であれば文字列、

Long型であれば整数値、

となります。

質問した人からのコメント

2017/9/29 07:48:40

ありがとうございます。自分の中で変数の「名前」と「型」がゴッチャになっているみたいです。他の方もありがとうございました。

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

zzr********さん

2017/9/2810:24:56

この質問の発端が
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q111800142...

過去の質問の回答にあるとするのなら、単純に

>For i = 7 To 16

7から16の『整数』を順次変数に格納したいからってだけですよ。

もしかして変数名に”縦”を使いたかったので、”だったら文字列(String)じゃないの?”と考えたのでしょうか?

VBSなら型を明確にしなくても(As ~)構わないでしょうけど、VBAをやるのであれば型の宣言について、まず覚える事をお薦めします。

プロフィール画像

カテゴリマスター

lin********さん

2017/9/2809:48:15

たとえば、

Dim i As Long
i = 1

としたとき、「i」の「中身」は「1」になります。

決して「"1"」(文字列の「1」)ではありません。

「i」は、「変数」です。

Dim i As String
i = "1"

なら、「i」の中身は、文字列としての「1」になります。

「変数」というのは、コンピュータのメモリに名前を付ける、とでも考えてください。

「Integer」という型なら「-32,000~+32,000」ぐらい(正確な数値はネットで調べてください)の範囲が扱え、メモリは2バイト使います。

Dim i As Integer

とすれば、その「2バイト」のメモリに「i」という名前が付けられ、整数の数値だけが入ることができます。

Dim i As Long

なら、「4バイト」のメモリに「i」という名前が付きます。

そして、

Dim i As Long
For i = 7 To 16
~~~処理~~~
Next i

では、「i」の値(メモリの中身)は、「7」~「16」まで1つずつ変化します。

「i」の中身は「数値」ですので、「x = i + 5」などという計算もそのままできます。

hig********さん

2017/9/2807:49:29

i は変数の名前
中身は整数
という変数を使うと宣言するには
Dim i as Long

k_w********さん

2017/9/2805:24:23

>i自体は数値ではなく

i が数値か数字かと言うよりも、”何を表すための物か”がまず重要ですよね。

コードが途中なのであくまで憶測ですけど、セルの行又は列の番号(=数値)を示す為に For Next 文を使用しているのであれば、i は”数値であって数字ではない(=文字列ではない)”となりますね。
セルの”値”が文字列であったとしても、そのセルの位置を示す行列の番号は”数値”ですし。

まずはそこから考えて宣言する型を決めるべきと思いますよ。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

yuk********さん

2017/9/2804:56:26

iをfor 文で数字として使ってるからですよ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる