アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング初心者で、マクロを組んでいます。

VBAではvoidで配列の宣言ができるのでしょうか?
また、参考になるページがあれば教えていただきたいです。

A 回答 (3件)

voidはC言語で、型を持たないとか、型が不明とかいう場合に宣言。


vbaではVariantが相当する。

Variant配列例は以下
http://howto-it.com/excelvbaarraypra.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

variant型で宣言後redimできますでしょうか?
以下のように、条件によって配列の型を変えたいと思っています。

dim test() as variant

if a=true then
redim test(1to10) as Integer
else if a= false
redim test(1to10) as Currency
end if

お礼日時:2016/05/31 21:48

たぶん、私の書いている内容は分かりにくいと思いますから、あまり考えこまないでください。

VBAにおいて配列は、初級ではあるのですが、最初、一つを攻略するしかないでしょう。

VBAでは、基本的には、DIM hogehoge (As Varinat) Variant型は、可変という意味ですが、何でも入れられます、としておいて、

hogehoge = Array("A","B","C","D", "E")
とすることが多かろうと思います。

本格的には、最初から、
Dim hogehoge(0 to 4) とするか、
Dim hogehoge() として配列だけを宣言しておいて、
Redim hogehoge(4) と後で配列の再宣言をしなおすか、いずれかです。

例外としては、
byteTxt() As Byte の場合、そのまま文字列を流し込めば、バイトの配列になります。

基本的には、初期値(index) は、0 なのですが、VBAでは、特例として 初期値(index) は、1を認めていることになります。Dim hogehoge(1 to 10) として、1を初期値にしてはいけないとも言われますが、0からですと、時としてコードが複雑になることがあります。

参考サイトは、ちょっと難しいかもしれませんが、いろんなことを言う人がいて統一が取れない時は、原点の以下に当たることをお薦めします。

以下は、知っている人は知っているマイクロソフトの『プログラマーズガイド(Office 2000)』(書籍)の一部です。これは、VBAの入門書であり仕様書で、ネットでは一部割愛されていますが、まだ、この時代でも、Microsoft は、公開してくれているのは、とてもありがたいと思っています。

まず、「配列を作る」から始まります。
https://msdn.microsoft.com/ja-jp/library/cc34384 …

「配列とバリアント」
「配列を別の配列に割り当てる」
「関数から配列を返す」
「配列をプロシージャに渡す」
など、順を追ってみていただければよいかと思います。

なお、最近、ワークシートのセルの範囲を配列化して使うようになった理由として、.Net Framework の影響があるのではないかと思われます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

variant型で宣言後redimできますでしょうか?
以下のように、条件によって配列の型を変えたいと思っています。

dim test() as variant

if a=true then
redim test(1to10) as Integer
else if a= false
redim test(1to10) as Currency
end if

お礼日時:2016/05/31 21:48

動的変更はVariant宣言して置けば可能です。



以下が解説です。
http://officetanaka.net/excel/vba/statement/ReDi …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2016/05/31 22:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!