![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。
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.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...
-
エクセル マウスで選択した範...
-
同じ色だけ残して後の部分をモ...
-
選択範囲の空白セルに0を入れる...
-
フォトショップ5.5での輪郭のぼ...
-
画像を角丸長方形で切り抜きた...
-
Excelで「名前ボックス」につい...
-
【エクセル関数】○○と○○と○○以...
-
メモやワードパッドやWordを使...
-
こんな風に1部をぼかすアプリを...
-
画像の背景を白にしたい。
-
フォトショ画像:背景への画像...
-
この画像の上と下の黒い部分を...
-
エクセル オートザム 範囲選...
-
私のプロフィールの自己紹介を...
-
楽に画面キャプチャを取る方法
-
エクセルのマクロで選択範囲の...
-
ヤフオクなどでキレイな枠
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
visual studio でインデントを...
-
エクセル マウスで選択した範...
-
エクセル ダブルクリック入力の...
-
テーブルリンク エクセルの4...
-
選択範囲の空白セルに0を入れる...
-
EXCEL VBA----離れたセル範囲の...
-
EXCEL VBAにて画像処理のアドイ...
-
Cell内の一部を指定する方法(Wo...
-
EXCEL ボリュームゾーンごとの...
-
セル削除右(又は下)方向にシフト
-
Wordで一括範囲指定について
-
反転する時の色を変えたいのですが
-
Wordデータの色を反転させたい
-
エクセルのマクロで選択範囲の...
-
読み上げ機能について
-
フォトショ画像:背景への画像...
-
ペイントでの切り取り
-
画像の背景を白にしたい。
-
Wordでの範囲指定について
-
【EXCEL】ピボットテーブルの集...
おすすめ情報