(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。VBAで段落の冒頭の全角スペースをインデントに変更するマクロを作っています。VBAで複数のドキュメントを一括処理するマクロの作り方をお伝えしています。VBAで全角スペースを検索する方法をお伝えします。Word検索の方法を復習します。tonari-it.com2017.08.01文書の全体から全角スペースのみを検索する方法をお伝えしました。今回はこれを一歩進めて、検索した全角スペースが含まれる段落を取得する、またその段落範囲の開始位置を取得する方法をお伝えします。あ、今回ですが、はっきり言って地味です。VBAで全角スペースをインデントに一括変更する前回のおさらい前回作成したプロシージャはこちらです。Sub全角スペースを見つけて順番に選択するプロシージャです。ポイントとしては2点。5行目のWrapプロパティ:wdFindContinueを設定することにより文書全体を検索する6行目のMatchByteプロパティ:Trueを設定することで、全角と半角を区別する今回のお題:発見した全角スペースが段落の冒頭かどうかを判定するさて、最終的にやりたいことは、段落の冒頭が全角スペースであればインデントに変更をするという処理でしたね。このプロシージャを実行していくと、全角スペースが順番に選択されるわけですが、以下のように段落冒頭の全角スペースのときは、インデントに変更をすればよいですよね。以下のように段落の途中の全角スペースの場合もあります。この場合は、段落の冒頭にインデントを挿入しないようにする必要があります。その判定は、上記の図のようにExcecuteメソッドの結果選択されている全角スペースのStartその全角スペースが含まれている段落範囲のStartを比較することで実現可能です。...わかりますか?全角スペースが段落の最初の文字でなければ、全角スペースの位置を表す範囲のStartと、その段落範囲のStartは異なるはずということです。検索結果の選択範囲の開始位置を求めるでは、Excecuteメソッドの結果選択されている全角スペースの位置を取得してみましょう。選択されているのですから、その範囲はSelectionオブジェクトです。Selectionオブジェクトの開始位置はStartプロパティで取得できましたよね。VBA初心者向けシリーズ。今回は、文字を入力する方法の中で最もシンプルな方法を紹介。SelectionオブジェクトのtypeTextメソッドを使って、現在のカーソル位置に文字を入力する方法です。tonari-it.com2017.07.04ですから、Excecuteメソッドで発見した全角スペースの範囲の開始位置は、そのまんま以下で取得できるということです。BasicSelection.Start1Selection.Start検索結果を含む段落範囲の開始位置を求める続いて、検索結果の全角スペースを含む段落範囲の開始位置を求めます。こちらはちょっと道のりが長いですよ。検索結果の選択範囲を含む段落はSelectionオブジェクトのParagraphsプロパティで集合として取得することができます。Selection.Paragraphs今回の場合、Selectionは全角スペース1文字ですから、取得したParagraphsコレクションの要素はただ1つです。取得したい段落は最初の要素つまりFirstプロパティでParagraphsコレクション.Firstを使って取得できますね。その段落の開始位置を知りたいのですが、残念ながらParagraphオブジェクトにはStartプロパティがありません。Rangeプロパティで範囲を取得します。Paragraphオブジェクト.Rangeこれら一連のプロパティについては以下記事でも紹介していますので、ご参考ください。VBAを使って便利な入力ツールを作る方法をお伝えしています。VBAで選択範囲の中から最初の段落と最後の段落を取得して、その文字列を出力する方法をお伝えします。tonari-it.com2017.07.09そして、範囲つまりRangeオブジェクトの開始位置はStartプロパティで、終了位置はEndプロパティで取得できます。Rangeオブジェクト.StartRangeオブジェクト.Endこれらを踏まえますと、検索結果を含む段落範囲の開始位置を求めることができ、以下のように書きます。BasicSelection.Paragraphs.First.Range.Start1Selection.Paragraphs.First.Range.Start検索した全角スペースが段落の冒頭かどうかを判定するプロシージャこれらの二つを比較して同じかどうかを判断すればよいということですね。そこで、以下のようなプロシージャを作りました。Sub全角スペースを検索するたびに、段落の冒頭かどうかを判定して、冒頭であれば「インデントに差し替えます」、そうでなければ「何もしません」とデバッグ出力されます。VBAで検索結果が含まれる段落を取得し、その段落範囲の開始位置を取得する方法についてお伝えしました。BasicSelection.Paragraphs.First.Range.Start1Selection.Paragraphs.First.Range.Startこういった表現がシュパっと出てくるようになると、本当にいろいろなことができるようになります。次回いよいよインデントに差し替える処理を追加していきます。VBAで段落の冒頭の全角スペースをインデントに一括変更するマクロの作り方をお伝えしています。VBAで全角スペースをインデントに変更していく処理を追加するマクロを完成させます。VBAで全角スペースをインデントに一括変更するWordで文書を作成するときに、段落の冒頭をうっかり全角スペースにしてしまったりすることありますよね。全部インデントに統一しておきたい、そんなときに使える一括変更マクロを作っていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Word・VBAWordで最初に見直すべき入力オートフォーマットのオプションを全て解説Wordで入力作業をしているときに、勝手に余計なことをされてしまう...それは入力オートフォーマットという設定でコントロールできます。今回はWordでまず見直すべき入力オートフォーマットの設定についてお伝えします。VBAで色々な検索&置換をする方法についてお伝えしています。VBAで連続して検索して蛍光ペンでハイライトをする方法についてお伝えします!Executeメソッドのイケてる機能がポイントです。2017.07.14Excel・VBA活用術エクセルVBAでWordを操作して文書を操作する準備と最も簡単なプログラムエクセルVBAでWord文書を操作する方法について、最初の一歩からお伝えするということで、まずはエクセルVBAでWord文書を操作するために必要な準備と、最も簡単なプログラムについてお伝えします。VBAで段落の冒頭の全角スペースをインデントに一括変更するマクロの作り方をお伝えしています。VBAで全角スペースをインデントに変更していく処理を追加するマクロを完成させます。VBAで色々な検索や置換をする方法についてお伝えしています。VBAで検索オプションを設定して検索をする方法をお伝えしつつ、その設定をするプロパティ一覧ををまとめています。2017.07.17Excel・VBA活用術エクセルVBAでWord文書を開いてページ数や文字数などのいろんな情報を取得するエクセルVBAでWord文書を操作する方法についてシリーズでお伝えしております。今回は、起動したWordアプリケーション上にWord文書を開いて、ページ数や文字数などのいろいろな情報を取得します。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。