
連想配列を配列に格納したいです。
vba初心者です。今集計マクロを作成中なのですが、上手くいきません。
ご教示頂けたら幸いです。
ソース
Sud countNumbers()
Dim i As Integer
Dim sline As Integer
sline = 1
Set sd = CreateObject(″Scripting.Dictionary″)
Application.ScreenUpdating= False
For i = 5 To 500
sNo=Worksheets(1).Cells(sline,i).Value
sd(sNo) = sd(sNo) + 1
Next
Application.ScreenUpdating = True
i = 1
For Each sn In sd
Worksheets(1).Cells(1,i).Value = sn & ″が″ & sd(sn) & ″件″
i = i + 1
Next
Set sd = Nothing
End Sub
この値を配列に貯めて、1つのセルに参照したいのですが!
上手くいきません…
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは
>今集計マクロを作成中なのですが、上手くいきません
うまくいかない場合は、コードを見ても実際に何をしたいのかわかりませんので、「何をどうしたいけれど、○○がうまくいかない」という説明をしないと回答ができないと思います。
ご提示のコードで気が付くのは、ます
Sud → Sub
(全角の)”→ (半角)"
の修正が必要と思われること。
以下、勝手な推測ですが・・・
1行目(5列から500列まで)の値を参照して、同じものの重複回数をカウントし、その結果を表示したい。
ということと解釈しました。(もしかすると1列目なのかも知れませんが、コードは行になっているので)
ご提示のコードでは結果の表示が、1行目1列からになっていますが、項目数が4以上あると元のデータ部分をに上書きすることになってしまいますので、4項目までを表示するように制御するか。別のセルに表示するようにした方が良さそうに思います。
結果を、2行目に左詰で表示するものとして、サンプルにしてみました。
・空白セルはカウントからはずしています。
・シート名を省略していますので、アクティブシートに対して処理が行われます。
Sub Sample()
Dim sd As Object
Dim val As String
Dim i As Long, k
Set sd = CreateObject("Scripting.Dictionary")
For i = 5 To 500
val = Cells(1, i).Value
If val <> "" Then
If sd.Exists(val) Then sd(val) = sd(val) + 1 Else sd(val) = 1
End If
Next i
k = sd.Keys
For i = 0 To sd.Count - 1
Cells(2, i + 1).Value = k(i) & "が" & sd(k(i)) & "件"
Next i
Set sd = Nothing
End Sub
お返事遅れて大変申し訳ありません!
やりたい事は500行500列のデータがあります。
一行一行に商品があり。
1列ずつには、発注数があります。
何の商品に発狂数が何件あるかを合計せずに、重複している数字は重複回数を記載して集計したいのです!
本日は、時間の都合で試せないのですが…
サンプルマクロは、参考にさせて頂きます!
また結果がで次第ご連絡いたします。
ご教授大変感謝いたします。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
Application.Matchで特定行の検索
-
i=cells(Rows.Count, 1)とi=cel...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
Excel VBA、 別ブックの最終行...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBAでセル同士を比較して色付け
-
VBA初心者です。結合セルを保持...
-
【VBA】指定したセルと同じ値で...
-
TODAY()で設定したセルの日付...
-
vba 隣のセルに値がある行だけ...
-
VBAでセルをクリックする回...
-
【EXCEL VBA】Range("A:A").Fi...
-
Excel VBAで、 ヘッダーへのセ...
-
EXCELで変数をペーストしたい
-
任意フォルダから画像をすべて...
-
セルに貼り付けた画像の上から...
-
エクセルVBAで結合セルの真ん中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報