![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
過去の質問で色々と助言を受け、以下のプログラムを作成しました。エラーはでないのですが
最後のMsgBoxで何も出てきません。
詳しい方教えていただけないでしょうか。
'1号機の品名を重複分もすべて格納する
Dim No1_M_number(100) As Variant
'1号機の品名で重複分を除いた配列
Dim M_number() As Variant
※色々ループ文で処理をしてNo1_M_number(0)~No1_M_number(67)
まで品名が格納されている。
'関数に配列を渡し、重複分除去
M_number = deleteDuplicateItem(No1_M_number())
Dim s As String
s = ""
s = Join(M_number, vbCrLf)
MsgBox s ←ポップアップに何も表示されない
Function deleteDuplicateItem(ary() As Variant) As Variant()
'#####################################################################
'配列から重複している要素を削除する
'Dictionaryを使用するので、Microsoft Scripting Runtimeの参照設定が必要
'---------------------------------------------------------------------
'引数 :ary 重複を削除したい配列
'#####################################################################
Dim Dic As Dictionary
Set Dic = New Dictionary
Dim i As Long
For i = 0 To UBound(ary)
If Dic.Exists(ary(i)) = False Then
Dic.Add ary(i), ary(i)
End If
Next i
deleteDuplicateItem = Dic.Keys()
Set Dic = Nothing
End Function
No.2
- 回答日時:
とりいそぎ。
要件だけ。>For文途中で
>MsgBox m_Counter & "番目の品番は" & No1_M_number(m_Counter) & "です。
>のようにすると、以下のポップアップが1番目から順にでます。
>>「No1_M_number()」変数に配列として格納されているか
確かに、こうは書きましたが、それは、それは、正しく格納されていたら、当然、そのようにでます。
M_number = deleteDuplicateItem(No1_M_number()) 'ユーザー定義関数
の後の出力を、ブレークポイントで、ローカルウィンドウの変数の中身を見てください、と書いたつもりだったのですが。
申し訳ありません。ブレークポイントの使い方を調べたのですが、いまいちわからず、ツールバーの表示からローカルウィンドウをクリックしても何も起こらなかったため、変数に配列が格納されているのか確認できませんでした。他に確認方法はないでしょうか。
No.1
- 回答日時:
以下で示すように、
コードの中の---ここの時点で、「No1_M_number()」変数に配列として格納されているか
ということです。デバッグ-ブレークポイントを設けて、ローカルウィンドウで、
変数の中身を確認します。問題は、配列を入れる部分が分からないことです。
Sub Test2()
Dim No1_M_number(100) As Variant
'-------------------------------'私が試した方法
For i = 1 To 100
No1_M_number(i - 1) = Cells(i, 1).Value
Next
'---------------------------------
'1号機の品名で重複分を除いた配列
Dim M_number() As Variant
'関数に配列を渡し、重複分除去
'--------------<---ここの時点で、「No1_M_number()」変数に配列として格納されているか
M_number = deleteDuplicateItem(No1_M_number())
Dim s As String
s = ""
s = Join(M_number, vbCrLf)
MsgBox s
End Sub
![「VBA 配列で重複した単語が格納されてい」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/1138040_5dcb846dde616/M.jpg)
途中の式は文が多いためここに入らないですが、For文途中で
MsgBox m_Counter & "番目の品番は" & No1_M_number(m_Counter) & "です。
のようにすると、以下のポップアップが1番目から順にでます。
6番目の品番は559135です。
7番目の品番は559135です。
~
30番目の品番は2628です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンキーボードで時分秒を...
-
複数のテキストボックスに同じ...
-
ラジオボタンのチェックをEnter...
-
VBAで配列の計算
-
Sourcearrayの読み方を教えてく...
-
VBで作った乱数を一度も重複さ...
-
EXCEL VBA で、0から?1から?
-
格闘ゲームのコマンド判定について
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
変数を動的に作るには?
-
コントロール配列の多次元配列
-
For文と配列
-
VBでbyte配列型のインスタンス...
-
int型配列の一括初期化
-
VBA 配列で重複した単語が格納...
-
空き番号探し
-
Excel VBAで配列の途中から(X)M...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
C言語 重複しない4ケタの乱数...
-
変数を動的に作るには?
-
VB.net 引数で配列変数を渡す際...
-
応用情報技術者試験の令和元年...
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
VBでbyte配列型のインスタンス...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
遅延バインディングを使用でき...
-
Visual C++ でコントロールを...
-
Excel VBAで配列の途中から(X)M...
-
C++、クラスメンバの構造体配列...
-
C言語で3次元配列の課題をして...
-
For文と配列
-
【MFC】GetCount()とGetSize()...
おすすめ情報