質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

2920閲覧

VBAで配列の添え字が使えない

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2017/07/14 04:34

###前提・実現したいこと
10進数を整数型で入力して、文字列型の2進数に変換して、C#などのように添え字を使って、各桁を出力したい。

###発生している問題・エラーメッセージ
コンパイルエラー:配列がありません
と表示される

###該当のソースコード

Sub 10進数を2進数に変換() Dim bin As String bin = WorksheetFunction.Dec2Bin(InputBox(""), 8) MsgBox (bin(0)) MsgBox (bin(1)) End Sub

InputBox("")で受け取った256以下の整数を、Dec2Bin()を使って8桁の2進数に変換しています。Dec2Bin()の戻り値はString型なので、bin(0)のように添え字を使って、配列binの0番目の要素を取り出せるはずですが、上記のエラーがでます。

###試したこと
msdnの該当ページを参考にして、bin.Chars(0)と書き換えてみましたが、「修飾子が不正です」というコンパイルエラーが出ます。

###補足情報(言語/FW/ツール等のバージョンなど)
Excel2016とVBEを使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

VBAの場合、String型の要素にアクセスするには(n)のような表記はできません。
Mid関数で、位置と文字数を指定して取り出します。

VBA

1 MsgBox (Mid(bin,1,1)) 2 MsgBox (Mid(bin,2,1))

https://msdn.microsoft.com/ja-jp/library/05e63829(v=vs.90).aspx

投稿2017/07/14 04:41

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/07/14 04:50 編集

https://msdn.microsoft.com/ja-jp/library/system.string.chars(v=vs.110).aspx には ``` Dim str1 As String = "Test" For ctr As Integer = 0 to str1.Length - 1 Console.Write("{0} ", str1(ctr)) Next ' The example displays the following output: ' T e s t ``` のように書いてありますが、このMSDNの情報は間違っているのでしょうか?
ttyp03

2017/07/14 04:53

これはVB.NETなので、この情報は使えません。
coco_bauer

2017/07/14 04:58

”.NET Framework”のクラスと、VBAのクラスは、クラス名が同じでも中身が違います! 注意深く読みましょう。
退会済みユーザー

退会済みユーザー

2017/07/14 05:05

MSDNにVBと書いてあったので、勝手にVBAのことだと思っていました…VB.NETのことだったんですね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問