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

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

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

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

配列

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

Q&A

解決済

2回答

987閲覧

配列の中身をシートに出力して確認する方法

Mai0429

総合スコア15

VBA

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

配列

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

0グッド

0クリップ

投稿2020/02/06 08:38

vba

1 2Sub Macro1() 3 Dim Origin As String: Origin = ActiveSheet.Range("A1").Value 4 Dim c As Range: Set c = ActiveSheet.Range("B1") '入力開始セル 5 6 Dim Group 7 For Each Group In Split(Origin, vbLf) 8 Dim Items: Items = Split(Mid(Group, 2), "/A") 9 c.Value = Items(0): Set c = c.Offset(1) 10 Dim w: w = Split(Items(1), "、") 11 Dim l As Long: l = UBound(w) + 1 12 c.Resize(l).Value = WorksheetFunction.Transpose(w) 13 Set c = c.Offset(l) 14 Next 15 16'結果得られる全ての要素数を知りたい↓ 17 18 19End Sub 20

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

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

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

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

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

hatena19

2020/02/06 08:49

過去の質問に対する私の回答のコードですよね。 いきなりコードだけ提示されても、過去の流れを知らない人には意味不明ですよ。 そのコードで配列の中身はシート上に出力されていると思いますが、何が疑問点なんでしょうか。
hatena19

2020/02/06 08:57

とりあえず、下記のスレッドで、私の回答で指摘したやりたいこと(仕様)を明確にしてください。 https://teratail.com/questions/239754 使用が明確になったら、その仕様にそった回答をそちらでします。仕様が不明確のまま、推測で回答しても外れていたら無駄骨ですので。
Mai0429

2020/02/07 07:00

大変失礼致しました。後ほど家に帰ったら追加・編集したいと思います。携帯から投稿した際2回投稿を押してリフレッシュされたまま投稿されてしまったのかもしれません。m(__)m
guest

回答2

0

ベストアンサー

ExcelVBA

1Sub Macro1() 2 Dim Origin As String: Origin = ActiveSheet.Range("A1").Value 3 Dim c As Range: Set c = ActiveSheet.Range("B1") '入力開始セル 4 Dim Group 5 Dim Items: 6 Dim w: 7 Dim l As Long 8 Dim n As Long 9 10 11 For Each Group In Split(Origin, vbLf) 12 For Each Items In Split(Mid(Group, 2), "/A") 13 w = Split(Items, "、") 14 l = UBound(w) + 1 15 c.Resize(l).Value = WorksheetFunction.Transpose(w) 16 Set c = c.Offset(l) 17 n = n + l 18 Next 19 Next 20 21 MsgBox n & "個" 22End Sub

こういうことがしたいのかな?動作確認してません。
こういうのは、
ステップインで1行づつ実行しながらローカルウィンドウで、
変数の中身を確認したらよいと思います。
配列になっているものは折りたたまれているから、
「+」のところをクリックで展開してみてください。

コードの途中に変数の宣言があるのは、
流行りかも知れないけど、どうにもなじめない^^;


追記

あ、ループの中で変数の宣言はだめです。
1回で済むことを何回もすることになります。

投稿2020/02/06 09:02

編集2020/02/07 08:00
mattuwan

総合スコア2163

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

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

hatena19

2020/02/07 10:59 編集

> あ、ループの中で変数の宣言はだめです。 > 1回で済むことを何回もすることになります。 ならないです。 変数宣言はプロシージャ内のどこに記述しても、一番最初に1回だけ解釈されます。 VBA 変数宣言はIfやFor等のコードブロック中に書いても機能する - t-hom’s diary https://thom.hateblo.jp/entry/2018/06/02/185716
guest

0

ありがとうございます。
たしかにご提示いただいたコードで全ての要素の数がわかるようになりました。

質問文が書けておらず大変申し訳ございませんでした。
後ほど家に帰ってから編集したいと思います。

投稿2020/02/07 06:54

Mai0429

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問