こんにちは。
Word2007において、
「選択範囲にある、全ての段落の、先頭文字を削除する。」
という処理を行うVBAマクロを作成しようとしています。
このマクロは、選択範囲に対して連続で行いたいので、
マクロ実行後に、範囲選択が解除されていない状態である必要があります。
このマクロを記述しようと、自分なりに考えたVBAコードは以下の通りです。
------------------------------------------------------------
Sub 選択範囲の先頭文字を削除する()
'選択範囲にある、全ての段落の先頭文字を削除する。
Set Selection_Range = Selection.Range
'次のForループで範囲選択がなくなるので、Rangeオブジェクトで処理範囲を固定している。
For x = 1 To Selection_Range.Paragraphs.Count
Dim str As String
str = Selection_Range.Paragraphs(x).Range.Text
Selection_Range.Paragraphs(x).Range.Text = Right(str, Len(str) - 1)
Next
Selection_Range.Range.Select
End Sub
------------------------------------------------------------
このマクロを、例えば
abc
def
ghi
jkl
という範囲を選択して実行すると、
abc
def
ghi
jkl
となり、
abc
def
ghi
だけが選択された状態になります。
しかし、本来期待している動作を考えると、マクロを実行した後に、
abc
def
ghi
jkl
が選択されているようにしたいのです。。
以上の件について、何か良い方法を知っておられる方がいらっしゃれば、是非教えて頂きたいと思います。
では、よろしくお願い致します。
No.2
- 回答日時:
>段落の先頭文字を削除する時に、僕はRight関数を使って
Mid(str, 2) です。
御回答ありがとうございます。
Midという関数の存在は知りませんでした。
すごく便利ですね。
おかげでやりたいことができるようになりました。
No.1ベストアンサー
- 回答日時:
2010版なので違っていたらすみません。
2010版だと単にコードのミスのようにしか思えないエラーになります。
rangeを取り除けば1文字削除されるだけで元の範囲が選択されます。
1回目だけあらかじめ選択しておけば、その後は繰り返し実行しても次々に1文字が減っていくだけです。
Selection_Range.Range.Select
End Sub
↓
Selection_Range.Select
End Sub
御回答ありがとうございます。
御提案された通り、Selection_Range.Range.Selectを、
Selection_Range.Selectに変更すると上手く行きました。
せっかくなので、この際お聞きしたいのですが、
段落の先頭文字を削除する時に、僕はRight関数を使って
str = Selection_Range.Paragraphs(x).Range.Text
Selection_Range.Paragraphs(x).Range.Text = Right(str, Len(str) - 1)
としたのですが、もっと簡単に削除する方法はありますでしょうか?
恐れ入りますが、よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) A列の最終行に合わせて範囲をコピー 2 2022/09/04 19:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual studio でインデントを...
-
エクセル ダブルクリック入力の...
-
テーブルリンク エクセルの4...
-
【EXCEL】ピボットテーブルの集...
-
Wordでの範囲指定について
-
エクセル マウスで選択した範...
-
条件付合計式ウイザードで乱数...
-
読み上げ機能について
-
選択範囲の空白セルに0を入れる...
-
VBAを利用し、Excelの指定範囲...
-
白飛びした(明るい)写真をiPhon...
-
エクセルである行以下全部を削...
-
EXCEL VBAで全選択範囲の解除
-
Photoshop で8bit /チャンネル ...
-
Androidのスマホで毎回毎回ホー...
-
Excel VBA あるセルでENTERを押...
-
ipadのpagesでMS明朝を使う方法...
-
「無」と「未」の使い方
-
Jw-cadの範囲指定で文字が選択...
-
マウスカーソルをレーザーポイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
visual studio でインデントを...
-
エクセル ダブルクリック入力の...
-
エクセル マウスで選択した範...
-
テーブルリンク エクセルの4...
-
選択範囲の空白セルに0を入れる...
-
EXCELで、関数を使って対象の項...
-
エクセルのマクロで選択範囲の...
-
Cell内の一部を指定する方法(Wo...
-
セル削除右(又は下)方向にシフト
-
反転する時の色を変えたいのですが
-
Wordデータの色を反転させたい
-
EXCEL VBA----離れたセル範囲の...
-
読み上げ機能について
-
EXCEL ボリュームゾーンごとの...
-
EXCEL VBAにて画像処理のアドイ...
-
エクセルのマクロを教えてくだ...
-
Dreamweaverで「選択範囲の周囲...
-
アドレスを指定して削除できる...
-
VBA 罫線を消さずに切り取り A1...
-
Wordで一括範囲指定について
おすすめ情報