
.
excelの一つの行に、仮にA行にデータがずらりと並んでいます。
そのデータの並びのうち、同じデータが2つ以上並んでいる部分を検出したい。
それは関数EXACT(文字列,文字列)を使えばよいですね。
=EXACT(A1,A2) とB1セル(じゃなくても良いか)に入力して、コピーしてB2セル以下にだああああっとペーストすれば良いですね。簡単です。
然しこれをシートじゃなく、VBAでやりたいのですが、=EXACT(セル番号,セル番号)のセル番号の指定の仕方が分かりません。
ご教示願います。
よろしくお願いいたします。
以上
No.1ベストアンサー
- 回答日時:
こんにちは
例えばB1:B10に入力する場合なら、
Range("B1:B10").FormulaLocal = "=EXACT(A1,A2)"
で良いです。
(アドレス変換はエクセルがやってくれます)
あるいは、R1C1形式の式にしておけば、同じ式ですみますね。
fujillinさん、ありがとうございます。
上記でできることは分かったのですが、困ったことがありまして。
一覧表からカードを作るプログラムを作っているのですが、作るカードの方で、EXACTによる比較が必用なのですが、その比較する縦に並んだデータは、縦に結合したセルなのです。
なので実行すると、1回の比較ごとに「セルを結合すると、左上の値のみが保持され、他のセルの値は破棄されます」というダイアログボックスが出て、[OK]と[キャンセル]のボタンがあり[OK]ボタンを押さないと先に進めません。カード数が500枚なら500回[OK]ボタンを押さないと先に進めません。
これでは自動になりません。
然し、これも一工夫で何とかなるかな?と考えております。
一工夫してみます。
有り難うございました。
No.3
- 回答日時:
No1です
>なので実行すると、1回の比較ごとに「セルを結合すると、左上の値のみが
>保持され、他のセルの値は破棄されます」というダイアログボックスが出て~
どういう処理をしているのか不明ですが、No1のコードでアラートが表示されることはないはずです。
ですので、他の処理でそのアラートが出ているものと推測します。
通常そのようなアラートが出るのは、「セルを結合させ」ようとした場合ですので、どこかでセルを結合させるような記述をしていないでしょうか?
アラートが出るのを防ぎたければ、アラート表示を停止させれば可能ですけれど、穴の開いた布にパッチをあてて回るようなものなので、応急処置は別として、初めからきちんと整理した処理を考えるべきでしょう。
ついでながら、そもそもになってしまいますが・・・
何をなさろうとしているのかがわかりませんけれど、ご質問のような比較にわざわざEXACT関数をセルに設定するようなことも、普通はめったに行わないものと想像します。
なぜなら、VBAで直接セル値を比較すれば、それで事足りてしまうからです。
ご質問の方法だと、いずれはその結果を読みに行かなければならないので、「関数の設定」、「結果の読み取り」、「関数の削除(←必要な場合は)」と何通りもの処理を行わうことになり、返って手間が掛かることになりかねません。
ご質問内容が、「関数の設定の仕方」でしたので、そのままそちらで回答しましたけれど、「なさりたいこと」をきちんと整理した上でご提示いただければ、もう少し要領のよさそうな方法を回答できるかも知れません。
fujillinさん、再び有り難うございます。
私のやりたい事は、上下に隣り合っているセルの中身を比較して、その結果を表示したいだけです。
その為には、EXACT関数を使うしか方法が無いと思っていました。
>VBAで直接セル値を比較すれば、それで事足りてしまうからです。
数値以外ではそれは出来ないと思っていました。
やり方ご教示いただけますと幸いです、甘えすぎだとは思っておりますが。
ありがとうございました。
以上
No.2
- 回答日時:
(´・ω・`)?
A行?
ひょっとして、それは
A列
の間違いでしょうか。
・・・本題・・・
ワークシート関数のパラメータにセルを指定するやり方は共通です。
EXACT関数に限った話ではありません。
Exact( Range("A1") , Range("A2") )
Exact( Cells(1,1) , Cells(2,1) )
のようになります。
・・・余談・・・
ええと、繰り返し処理をする場合、VBAでは範囲を指定しなきゃならない。
For Next
などの構文を使って繰り返し処理をする必要があります。
For i=1 to 5
繰り返し処理する命令
Next
のようにして使います。(これは5回繰り返す例)
質問のケースでは変数「i」を使ってセルを指定することになるので
”Range" よりも ”Cells” のほうが便利でしょう。
・・・
もしも関数をセルに埋め込みたいのであれば、
Range.Formula
Cells.Formula
といったプロシージャを利用できます。
Range("B1").Formula = "=EXACT(A1:A2)"
Cells(1, 2).Formula = "=EXACT(A1:A2)"
のように文字列を指定して使います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
このQ&Aを見た人はこんなQ&Aも見ています
-
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
VBAでセル同士を比較して色付け
Visual Basic(VBA)
-
-
4
VBAを何回も作り直して、容量が増えた
Excel(エクセル)
-
5
VBAでEmpty値って何ですか?
Excel(エクセル)
-
6
VBAでダブルコーテーション入りの数式をセルにセットしたい
Visual Basic(VBA)
-
7
EXCELのSheet番号って変更できる!?
Visual Basic(VBA)
-
8
Excel VBA シート名変更時、重複していたら連番を付けたい
その他(Microsoft Office)
-
9
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
10
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
11
Excel VBAで比較して数値があってなかったらセルの色を変換
Visual Basic(VBA)
-
12
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
14
EXACT関数とIF関数の組み合わせについて
Excel(エクセル)
-
15
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
16
表にフィルターをかけ、絞ったデータ(可視化セルのみ)を一次元配列として変数に入れるという動作を書きた
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
枠に収まらない文字を非表示に...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
Excelで数式内の文字色を一部だ...
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
EXCEL VBA セルに既に入...
-
セルをクリック⇒そのセルに入力...
-
エクセル オートフィルタで絞...
-
エクセルの一つのセルに複数の...
-
エクセルの書式設定の表示形式...
-
エクセル セルの中に縦線が入っ...
-
Excelでのコメント表示位置
-
excelの特定のセルの隣のセル指...
-
Excel2010の指マークと白十字マ...
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
エクセル 足して割る
-
Excel 例A(1+9) のように番地の...
-
【Excel】 セルの色での判断は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
連続しないセルから最小値を引...
おすすめ情報