今画像のようなAからC列をそのままシート2に移し、なおかつC列の中の日本語のみ日本語があったセルの日本語のみ右隣のセルに移すと言うマクロを組んでいたのですが、
Sub 言語判別()
Dim 実行結果 As Object
Dim 判別 As Range
Worksheets("Sheet2").Cells.Clear
Set 実行結果= Worksheets("sheet2")
Worksheets("sheet1").Columns("A:C").Copy Destination:=実行結果.Columns
("A:C")
Set 実行結果 = CreateObject("VBScript.Regexp")
実行結果.Pattern = "[一-龠ぁ-んァ-ンァ-ンパピプペポ]+"
For Each 判別 In Range("C2:C65536")
If 実行結果.test(判別.Value) Then 判別.Offset(, 1).Value =
実行結果.Execute(判別.Value)(0)
Next
Set 実行結果 = Nothing
MsgBox "判別終了しました。", vbInformation, cnsTITLE
End Sub
でやって見たのですがただコピーされるだけで上手くいきません。
シート2に移さずシート1で実行した場合は上手くいきました。
なぜシート2に移したら上手くいかなくなるのかわかりません。
教えてください。
No.1ベストアンサー
- 回答日時:
プログラム内で複数のシートを扱う場合、CellsやRangeはどのシートのものかを指定する必要があります。
省略した場合には、アクティブなシートに対して処理が行われます。※なのでコピー後にSheet2をアクティブにするという方法もありますが、
ちゃんとシートを指定したほうが良いと思います。
あとワークシートと正規表現を同じ変数で使いまわしていますが、ワークシートの方はWorksheet型の変数を使用した方が良いと思います。
Dim 実行結果シート As Worksheet
Set 実行結果シート = Worksheets("sheet2")
実行結果シート.Cells.Clear
Worksheets("sheet1").Columns("A:C").Copy Destination:=実行結果シート.Columns("A:C")
For Each 判別 In 実行結果シート.Range("C2:C65536") ' ←どのシートのRangeかを明確に指定する
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2023/01/20 14:36
- Visual Basic(VBA) ワークシートごとに計算結果 2 2022/04/30 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAの天才来てください
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
VBA 存在しないシートを選...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロでアクティブ...
-
【VBA】指定した検索条件に一致...
-
excelのマクロで該当処理できな...
-
VBAでオブジェクト変数にsetし...
-
エクセル・マクロ シートの非...
-
ブック名、シート名を他のモジ...
-
Excelマクロのエラーを解決した...
-
VBA 検索して一致したセル...
-
Worksheet_Changeの内容を標準...
-
シートが保護されている状態で...
-
エクセルVBAでダブルクリックを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報