質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2700閲覧

【VBA】特定文字列を含むセルを検索後、そのセルの座標を取得したい

zazabi

総合スコア24

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/02/27 00:18

編集2020/02/27 01:11

お世話になっております。
######<やりたいこと>
・コマンド内容の処理
・エラーの解決

######<環境>(追記)
Office 365 バージョン1910(ビルド12130.20410 クイック実行)

######<コマンド内容>
1.特定文字列を含むセルをシートで検索する。
2.特定文字列を含むセルの座標を取得。
3.その座標を変数に格納する。

vba

1Option Explicit 2Sub search() 3 Dim CPs As Range 4 Set CPs = Cells.Find(What:="<検索する文字列>", LookAt:=xlPart, SearchOrder:=xlByRows) 5 If Not CPs Is Nothing Then 6 CPs.Activate 7 Else 8 Call MsgBox("「<検索する文字列>」セルが見つかりません。") 9 End If 10 11 Dim CPr As String 12 Set CPr = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) '座標を変数に格納 13End Sub

######<現在の状態>
・一番最後の文で「オブジェクトが必要です」とエラーが表示される(CPrが原因)。
・「Dim CPr As String」→「Dim CPr As Long」としても同様のエラーが表示される。
・「Dim CPr As String」→「Dim CPr As Range」とすると「型が一致しません(.Addressが原因)」とエラーが表示される。
・変数「CPs」は取得できていることが確認済み(「A13」のような座標)

わかる方がいるようでしたら教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
Setは不要では?

投稿2020/02/27 00:25

DreamTheater

総合スコア1095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zazabi

2020/02/27 00:34

コメントありがとうございます。 「Set CPr = …」→「CPr = …」と修正して実行した結果、「エラー"91"、オブジェクト変数またはWithブロック変数が設定されていません」とエラー内容が変わりました……。
DreamTheater

2020/02/27 00:47

検索文字列と指摘のSet以外全く同じコードを実行しましたが問題なく動作しましたよ。 一旦保存終了した後、EXCEL(VBA)を開きなおして実行しても同じですか? こちらの環境はOffice365のExcel (1908 11929.20606)です。
ttyp03

2020/02/27 01:02

Excel2013でも問題なく動きました。
zazabi

2020/02/27 01:08 編集

保存し、開きなおして実行してみましたが変わらず……。 環境は「Office 365 バージョン1910(ビルド12130.20410 クイック実行)」です。 この環境は元の質問にも記載します。 追記:念のため新しいブックを作成してそちらでも同様のエラーになるか検証してみます。
DreamTheater

2020/02/27 01:15

実行が停止するのはどこの行ですか?
zazabi

2020/02/27 01:16

DreamTheater さん ttyp03 さん コメントありがとうございます。 新しいブックを作成して検証したところ、ご指摘あった通りsetを外すことで問題なく動きました。 作成している間にバグったのでしょうか……。 解決策として、新しいブックで作り直そうかと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問