No.7ベストアンサー
- 回答日時:
Dictionaryは重複データは入れられないけど
使い道、取り出す時どうするのかな・・?
添え字を後から削除する必要が無ければ
If Not map.Exists(ary(i)) Then
Call map.Add(ary(i), CStr(i))
Else
Call map.Add(ary(i) & "|" & n, CStr(i))
n = n + 1
End If
必要があれば出力時、instr ・・Split などで
もし、重複データは不要なら #2様が回答されている通り
If Not map.Exists(ary(i)) Then Call map.Add(ary(i), CStr(i))
で良いと思いますよ
No.9
- 回答日時:
あとは
[VBA]ArrayListの使い方を知れば動的配列も解決!
https://y-moride.com/vba/arraylist-how-to-use.ht …
こちらを使うか。
ただwin10と相性が悪い場合もあるような記事も見かけたので、
他だとDicを2つ使うか?
No.8
- 回答日時:
配列の何番目って提示しているサイトにヒントが
For k = 0 To 10000 ' To map.Count - 1
If ("8" = ary(k)) Then
'// この時点の変数kの値が検索文字列がある配列の位置になる
Exit For
End If
Next
記載されていますよ。
No.5
- 回答日時:
#4
なるほど・・
何をされたいか良く分からないのですが・・ごめんなさい
If Not Dic.exists(Cells(i, 1).Value) Then
Dic.Add ary(i, 1).Value, ary(i, 2).Value
Else
Dic.Add ary(i, 1).Value & "|" & n, ary(i, 2).Value
n = n + 1
End If
keyに添え字付加?後でSplit出来るように"|" とか?
取り出す処理負荷どうかな・・・少し乱暴?
No.4
- 回答日時:
こんばんは
>dictionary を使用する目的が良く分かりませんが
配列を作るのにdictionaryを使用すると言う事でしょうか?
重複データを除く為にはよく使われますが、入れると言う事であれば、
違う方法が良いのではないかと思います
itemに添え字を付けるとかも出来るとは思いますが。。
既に配列が有ってその中には重複データも含まれている内容を調べる場合
調べる内容にもよりますが、べたに考えると配列内をループで探せばよいですね
参考コード
Dim i, j, ary
ary = Range("A1:F10")
For i = LBound(ary, 1) To UBound(ary, 1)
For j = LBound(ary, 2) To UBound(ary, 2)
If ary(i, j) = "keyword" Then Debug.Print ary(i, j); " = 行 :"; i; " 列 :"; j
Next
Next
aryは2次元配列
A1:F10範囲内のキーワードを探して 行№と列№を出力します
探す方法は調べる内容にもよりますが、色々あると思いますので参考サイト
https://www.sejuku.net/blog/70270
No.3
- 回答日時:
No.2です。
老眼です。
http://officetanaka.net/excel/vba/function/Join. …
http://officetanaka.net/excel/vba/function/instr …
1次元配列なら
joinで1行の文字列にしinstrで存在しているならどこにあるかを調べる。
存在してなければ0になる。
if instr(join(配列変数, "_"), "調べたい値")>0 then
'存在する時
else
'存在しない時
end if
No.2
- 回答日時:
エラーが出るそのコードが知りたいですが。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
最初の方のコード
If Not myDic.exists(Cells(i, 1).Value) Then
『もしkeyが既に存在してなければ
が良く使ってます。
Not を消せば
『もしkeyが存在していれば』になりますね。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) excel vbaの配列なんですが・・・ 1 2022/12/26 18:50
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで特定の文字が入った行をコ...
-
Excelのマクロについて教えてく...
-
VBAのエラー表示の対処法について
-
VBA 別ブックからコピペしたい...
-
Excelのマクロについて教えてく...
-
Excel 範囲指定スクショについ...
-
【ExcelVBA】インデックスが有...
-
VBAのループ処理について教えて...
-
エクセルでCDOを使ったメール送...
-
EXCEL vbaでシート上に配置した...
-
Excel_VBAについて質疑です。(...
-
【ExcelVBA】dictionaryの重複...
-
VBAでセルの書式を変えずに文字...
-
修正依頼:【VBA】 結合セルに...
-
Excelのマクロについて教えてく...
-
Excelのマクロについて教えてく...
-
Web画面の文字をVB6で取得したい
-
[VB.net] ボタン(Flat)のEnable...
-
エクセルのVBAコードについて教...
-
エクセルvbaの対象セルに色をつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の要素番号を取得するには?
-
VBでボタンを押すと画像をラン...
-
変な質問ですみません、n番目の...
-
VB.NET の配列の要素数
-
重複しない乱数の生成
-
DataGridでCTRLキーを押さずに...
-
Vba 配列の中の特定文字列の位...
-
VB6 複数行のテキストをリスト...
-
データ構造のテキスト保存につ...
-
重複しない乱数を作り配列に入...
-
複数の変数宣言を、for文で一気...
-
FlashソフトSuzukaで、トランプ...
-
ランダムで画像を表示させるには?
-
FLASHでXMLを読み込んだときに...
-
画面上にランダムでムービーク...
-
確率を設定したい
-
ランダム表示を重複させないよ...
-
Adobe FlashCS3【ActionScript3...
-
IDの自動採番について
-
文章の改行数を取得する
おすすめ情報
しかしそうすると処理が遅いのが欠点ですよね?
しかし要素の字数が2文字以上だと有効では無いですよね?
https://vbabeginner.net/convert-array-to-associa … このサイトのような事をしたいです。
特定の文字列が配列の何番目の位置にあるかを知りたいのです。
しかしそれだと、dictionaryを利用する方法より処理が遅いです。