VBA 検索と入力
Excel ブック ぶぶぶ
シート ししし
列V 検索対象の列です
最終行は、およそ2万行目、
ただし毎月 変わる
したいことは、
列 V について 一番上から下まで
各セルを検索し
ブック ぶぶぶ
シート たたた
列A の縦方向に 格納した単語に合致する場合は
例えばシート ししし
列 V について
任意のセルV30に関して
私は、畑でバナナを収穫した
と入力があり
シート たたた
列A の
任意のセルA5 にある
バナナ に検索がヒットした時に
シート ししし
セルV30 と 同じ行で別の任意の列 例えば Z 30に、
シート たたた
該当セルA5 と同じ行 E5に
格納された任意の単語 ジャガイモ を
シート ししし
セルZ30 に 入力したい
これをコーディングで教えてください
シート たたた は
いわば 単語帳であり 置き換え 前と置き換え後の単語が縦方向にずらっと 複数 並んでおり 最終行は
7000行くらいで 増える方向において 可変的です
No.6ベストアンサー
- 回答日時:
以下の前提で作成しています。
1.シートししし、シートたたた共に1行目は見出しとする。
2.シートしししの出力列はZ列からAI列までとする。(10列分)
変換対象となる単語が10個を超えた場合、その単語の変換は行われません。
3.高速化を実現するために、配列で操作を行っています。
下記URLへアップしました。
https://ideone.com/i6Coxa
出力列を増やす場合は、
Const OutColSize As Long = 10 '出力列数
の値を増やしてください。
但し、あまり増やしすぎると、メモリを大量に使用しますので、パフォーマンスが低下する可能性が
あります。どの程度が限界かはPCに依存しますので、あなたの方で調整をなさってください。
こちらのPCで実行した結果、所要時間は32秒でした。
シートたたた:7500件
シートししし:21000件
No.5
- 回答日時:
No4です。
No4の項番3に誤りがありましたので訂正します。No4は無視してください。
又、合致の例を追加しました。
文字列の比較時にどのようにして比較しますか。
1.大文字と小文字を区別する。
Yesの場合、catとCATは合致しない。
Noの場合、catとCATは合致する。
Noの場合、caTとCATは合致する。
2.全角と半角を区別する。
Yesの場合、CATとCATは合致しない。
Noの場合、CATとCATは合致する。
Noの場合、CATとCATは合致する。
3.ひらがなとかたかなを区別する。
Yesの場合、ばななとバナナは合致しない。
Noの場合、ばななとバナナは合致する。
Noの場合、ばナナとバナナは合致する。
のようになります。
No.4
- 回答日時:
追加の補足要求です。
文字列の比較時にどのようにして比較しますか。
1.大文字と小文字を区別する。
Yesの場合、catとCATは合致しない。
Noの場合、catとCATは合致する。
2.全角と半角を区別する。
Yesの場合、CATとCATは合致しない。
Noの場合、catとCATは合致する。
3.ひらがなとかたかなを区別する。
Yesの場合、ばななとバナナは合致しない。
Noの場合、ばななとバナナは合致する。
のようになります。
No.3
- 回答日時:
補足要求です。
補足要求1
シート:たたた
A5:バナナ E5:ジャガイモ
シート:ししし
V30:私は、畑でバナナを収穫した
の場合、
Z30へ ジャガイモ を設定したい。
ということですが、
シート:たたた が以下の場合
A2:畑 E2:田んぼ
A5:バナナ E5:ジャガイモ
Z30には、E2の値を設定するのでしょうか。それともE5の値を設定するのでしょうか。
補足要求2
>列の方向に
>増えないという返答をしました
>もう少し 何をしたいのかご説明します
>縦方向にたくさんの文章が入っています
>その文章の中身を分析する方法として
>所定の単語が含まれているか
>そして含まれる単語によって書かれている文章の中身を推測することをしたいのです
>単語の数は増える可能性があるため そういう意味では列は可変的です・・・・①
①の列は可変的です。の意味は、現在Z列に出力しているが、更にAA列、AB列、AC列、等に
出力するようにしたいという意味ですか。
もし、そうであれば、補足要求1については、
Z30へE2(田んぼ) AA30へE5(ジャガイモ)を設定したいということでしょうか?
連絡ありがとうございます 内容をよく調べてベッドをご連絡しますが 明日以降になります
よく精査してくださいましてありがとうございました
No.1
- 回答日時:
行数の変化はともかくなのですが、それぞれに重複している場合ってあるのでしょうか?
例えばシート【ししし】のV列にバナナが何行かヒットするとか?
それとも必ず一対一なのか?
【Book:ぶぶぶ】にコードを書くで宜しいですか?
あとExcelのバージョンは記載しておいた方が宜しいかも。
特にExcel単体なのかOffice365なのかでも、手段が変わる場合も。
ちなみに夜勤組なので昼間寝落ちしてしまって返信が遅れましたら、先日の質問者さんのようにブロックされましても気にしません。
まあこの時から、ふくらはぎの軽い肉離れで未だエアーサロンパスです。
エクセルのバージョンは最終的には365ですが テストするパソコンが別にあり365ではございません
列の方向に
増えないという返答をしました
もう少し 何をしたいのかご説明します
縦方向にたくさんの文章が入っています
その文章の中身を分析する方法として
所定の単語が含まれているか
そして含まれる単語によって書かれている文章の中身を推測することをしたいのです
単語の数は増える可能性があるため そういう意味では列は可変的です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】指定行以降をクリ...
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
特定のセルが空白だったら、そ...
-
EXCELで変数をペーストしたい
-
【Excel】指定したセルの名前で...
-
ExcelのVBAで数字と文字列をマ...
-
i=cells(Rows.Count, 1)とi=cel...
-
screenupdatingが機能しなくて...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
【VBA】指定したセルと同じ値で...
-
EXCEL VBA 画面のロックについて
-
実行時エラー438 オブジェクト...
-
台形面積計算式の表示等
-
DataGridViewの各セル幅を自由...
-
セル色なしの行一括削除
-
Excle VBA Findメソッドについて
-
TODAY()で設定したセルの日付...
-
VBA実行後に元のセルに戻りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報
同じエクセル ブックにコーディングすることを前提とした質問です
大量のデータの中には同じ単語 たとえば バナナ を 含む セルが 複数あります
1行目の見出しの部分は
ややこしければ
セル A 1を 見出A
セルB1を 見出B
という 具合で構わないです
これだけの量になると 処理速度が気になります
知識なくここへ 補足 入力していますが
値を代入することを多く 繰り返すと 処理速度が遅くなるという動画を見たことがあります
可能かどうか知らないですが
処理速度の速い配列を使って入力 処理ができるものか
なぜかパソコンで補足を追加できなくなっており スマホから入力します
No 1 について
シート ししし
V列
V列の縦方向は、任意の1つのセルに 単語帳 シート たたた のA列にある単語が 2つ現れる場合もあります
例えば私はバナナ畑でバナナを収穫した
複数の行に バナナは あらわれる場合があります
例えば 50行目と200行目にまた3000行目にバナナ と書いてあります
No. 3について
質問の書き方が不完全だったようです
単語帳 シートたたた
について、A 列の単語におうじた単語がE列にあります
シート ししし
のA列内の文章に含まれる任意の複数単語に応じて、
Z列から右方向へ
列Aa 列Ab 列Acのように
単語帳 シートにある単語を90度傾けるいようなイメージで右方向へ並べています
Z30に E2に相当する たんぼ
Aa30に E5に相当するジャガイモ
です
No. 4
単語はそのような意味においては
完全一致であり
大文字と小文字を区別しますし
全角と半角も区別しますし
ひらがなとカタカナも区別します
No. 5
残念ながら 単語は全て完全一致です
現在5月23日23時頃です
5つについてお答えしました
色々事情がありまして 遅くなりました