
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
回答番号No.3のコードで、
Selection.EndKey Unit:=wdLine, Extend:=wdMove を
Selection.MoveRight Unit:=wdCharacter, Count:=1 に
変更したらうまくいきました。
変更前は「END」キー、変更後は「→」キーを押すことに対応します。
「→」キーを押すと選択範囲の終了位置にカーソルが移動します。
「END」キーでは文末にカーソルが移動します。
No.4
- 回答日時:
「行間の高さ」とはどういう意味で使われていますか?
上の行の文字と下の行の文字の間隔ですか?
よく分かりませんが下記で取得出来る値のことでしょうか?
MsgBox Selection.ParagraphFormat.LineSpacing
回答番号:No.3で提示したコードで選択範囲を矩形で囲むことができるようになっていると思います。
それでは駄目なのでしょうか?
ただし、いろいろ不具合が発生します。
例えば、複数行を選択している場合、最終行の最終列位置から座標を取っています。
従って、中間行の文字列数が最終行のそれより大きい場合、枠内に文章が収まらない現象が発生します。
それと、選択範囲に最終行が含まれる場合も上手くないです。
まだ手を付けていませんが、改善に着手するつもりです。
Selectを使わずに、Rangeオブジェクトでやれないかな、とも考えているのですが、私のレベルでは難しいです。
Hamstar225さんが書かれたコードを拝見できないでしょうか。
No.3
- 回答日時:
進んでいますか?
サンプルです。試しに組んでみました。
Sub test1()
Dim x As Double
Dim y As Double
Dim w As Double
Dim h As Double
'カーソル位置座標取得
x = Selection.Information(wdHorizontalPositionRelativeToPage)
y = Selection.Information(wdVerticalPositionRelativeToPage)
Selection.EndKey Unit:=wdLine, Extend:=wdMove
w = Selection.Information(wdHorizontalPositionRelativeToPage)
Selection.GoTo What:=wdGoToLine, Which:=wdGoToNext, Count:=1
h = Selection.Information(wdVerticalPositionRelativeToPage)
'オートシェイプ挿入
ActiveDocument.Shapes.AddShape(msoShapeRectangle, x, y, w - x, h - y).Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.Collapse
End Sub
この回答への補足
申し訳ありません、行間の高さを取得するには
どうすれば宜しいのでしょうか?
行間いっぱいに長方形を描きたいので、
フォントサイズから取得したのでは、
対応できず、困っています。
よろしくお願いします。
度々のご返信、ありがとうございます。
少しずつ、進み、
x = Selection.Information(wdHorizontalPositionRelativeToPage)
y = Selection.Information(wdVerticalPositionRelativeToPage)
カーソルの位置にシェイプを追加することができました。
ただ、終了位置の座標がわからなくて、
サイズが設定できないという状態でした。
xls88さんの終了位置取得方法にて、再度、
作成してみたいと思います。
大変、助かりました。ありがとうございます。
No.2
- 回答日時:
ご返信、ありがとうございます。
なんとなくですが、Helpを見てみると、
出来そうな気がします。
ただ、フォントサイズ、フォントのパターンで、
オートシェイプで囲う範囲を
計算しないといけないことに気づきました。
検討後、再挑戦してみます。
貴重なご意見、ありがとうございました。
No.1
- 回答日時:
こんばんは!
私の解釈が間違っていたらごめんなさいね!
Wordのオートシェイプの座標値というのは私は考えた事がありません。
質問内容では本文をオートシェイプで囲って色を付けたいような感じに受け取れるので
その方法になりますが・・・
オートシェイプを挿入時に図形描画キャンバスが出てくると思います。
Deleteキーを押してキャンバスを消し、オートシェイプを挿入
そして囲みたい文字の上にオートシェイプを移動させ、
右クリック → 順序 → テキストの背面へ移動
細かい移動とか大きさ調整はAltキーを押しながら行えばいいと思います。
余計なお世話かもしれませんが、私はオートシェイプで本分を囲うより
テキストボックスを使う方が多いです。
以上、当方使用のWord2003での回答でしたが、
的外れの回答なら読み流してくださいね。m(__)m
返答、ありがとうございます。
説明不足で申し訳ありません。
Word文書の選択されている文字列範囲の座標を取得し、
マクロによって、オートシェイプで囲みたいと思っています。
tom04さんの操作も私自身、知りませんでしたので、
貴重な意見を頂き、ありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロを教えてください。 4 2022/10/06 08:53
- Visual Basic(VBA) A列の最終行に合わせて範囲をコピー 2 2022/09/04 19:10
- 数学 この写真の問題の(2)について何ですが、(1)の「2解が共に1より大きい」という時は写真のように、 5 2022/07/22 11:46
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- その他(Microsoft Office) 選択行の列範囲に二重線を引く 3 2022/06/08 12:21
- 画像編集・動画編集・音楽編集 WIN10で「切り取り&スケッチ」が上手く使えません。 1 2022/09/01 22:56
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Visual Basic(VBA) シート間で同じ値があったら指定範囲をコピーして貼り付け 1 2022/11/07 08:01
- PDF PDFの表がエクセルに貼り付けられなくなってしまいました。 5 2022/06/03 09:07
- 統計学 統計検定2級の過去問について 1 2023/01/04 16:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
シーケンサー(PLC?)で制...
-
プログラミングによるオセロゲ...
-
エクセルで回転する座標の出し方
-
ガウシアンフィルタのCプログラム
-
閉図形の座標の配列が右回りか...
-
最小二乗平面
-
多角形の内部かどうか判定する方法
-
マウス座標からリストボックス...
-
バイキュービック補間のプログラム
-
始点、終点の二つの座標と半径...
-
array<cv::Point, 3> points = ...
-
★ 五角形を書くプログラム ★
-
c#で直線が図形内にあるか判定
-
GLで座標を変えて回転させたい
-
画像回転について
-
ワード上Shapeの位置情報を統一...
-
Excel VBA で自在に図形を変化...
-
黒体放射軌跡のxy色度座標への...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
3次元空間上の2つの座標から...
-
エクセルで回転する座標の出し方
-
ダイアログ内コントロールの位...
-
多角形の内部かどうか判定する方法
-
交差する2線分の交点座標の求め方
-
ワード上Shapeの位置情報を統一...
-
C言語 配列で座標
-
閉図形の座標の配列が右回りか...
-
シーケンサー(PLC?)で制...
-
Excel VBA で自在に図形を変化...
-
直線上にある点の座標の求め方
-
エクセルである点からの距離で...
-
OpenCvSharp4による画像判定解...
-
始点、終点の二つの座標と半径...
-
GLで座標を変えて回転させたい
-
ピクチャボックスの座標取得
-
最小二乗平面
-
c言語でキーボードから2点の座...
おすすめ情報