キャレット絶対座標

Top / Coding / VBA / Word / キャレット絶対座標
 

ページ構成
−Top
  • −Coding
    • +.NET
    • +CUDA
    • +JavaScript
    • +MSOffice
    • +PHP
    • +PowerShell
    • +Python
    • +Ruby
    • −VBA
      • ・.NETFrameworkの使用
      • ・COMコンポーネントの使用
      • ・Closeメソッド
      • +Excel
      • ・FileSystemObject
      • ・Framework
      • ・GitHubで公開されているコード一覧
      • +IEの操作
      • ・INIファイルの読み書き
      • ・MACアドレスの取得
      • +Outlook
      • ・PowerPoint
      • +SelenuimVBA
      • ・SendKeys、SendInput
      • ・TemplateEngine
      • ・VBA7
      • −Word
        • ・AutoExec、AutoOpenに関して
        • ・Excelからの操作
        • ・おせっかい機能(オートフォーマット)のオフ
        • ・まとめサイト
        • ・キーの割り当て
        • ・キャレット絶対座標
        • ・フィールドコード
        • ・右クリックメニューの拡張
        • ・未整理
      • ・Word参考記事
      • ・ウィンドウをアクティブに
      • ・オートコレクト
      • ・クリップボードの操作
      • ・タスクの終了
      • ・ドキュメント自動生成
      • ・ハッシュを求める
      • ・ヒアドキュメントの実現
      • ・メールの作成
      • +ユニットテスト
      • ・一歩前へ
      • ・開発者
      • ・公開されているクラス一覧
      • ・人に説明するとき用のメモ
      • ・正規表現
    • +misc
    • +画像処理
  • +Server
  • +memo
  • +misc
  • +カメラ
  • +科学技術
  • +記事
  • +数値解析
最新の10件
2018-01-16 更新
  • misc/Hardware/各種プロセッサの倍精度演算性能
2017-11-27 更新
  • Coding/misc/raspberrypi
2017-11-02 更新
  • Coding/.NET/NuGetパッケージの作成
2017-10-19 更新
  • Coding/MSOffice/VSTO/ThisAddin_Startupに処理を書く問題が起きる
2017-06-16 更新
  • Coding/.NET/VisualStudioビルドイベント
2017-05-28 更新
  • misc/Hardware/タブレット向けCPU/複製
2017-05-25 更新
  • Coding/Python/CloudVision
2017-05-24 更新
  • misc/ロードバイク/サイクルロード/奈良
2017-05-11 更新
  • misc/ソフトウェア/文章/文章校正、作成支援ツール
2017-03-15 更新
  • misc/ソフトウェア/プロジェクト管理ツール

Powered By

b_pukiwiki.official.png

edit

目次関連するページ
  • 概要
  • 方法
    • Win32APIを多用
    • Wordの標準機能を使う
  • Coding/VBA/Word
  • Coding/VBA/Word/AutoExec、AutoOpenに関して
  • Coding/VBA/Word/Excelからの操作
  • Coding/VBA/Word/おせっかい機能(オートフォーマット)のオフ
  • Coding/VBA/Word/まとめサイト
  • Coding/VBA/Word/アドイン/一括置換
  • Coding/VBA/Word/キーの割り当て
  • Coding/VBA/Word/キャレット絶対座標
  • Coding/VBA/Word/フィールドコード
  • Coding/VBA/Word/右クリックメニューの拡張
  • Coding/VBA/Word/未整理
  • Coding/VBA/Word参考記事

概要 †

Word VBAで
キャレットの絶対座標(スクリーン座標)を取得する方法について調べた。

↑

方法 †

↑

Win32APIを多用 †

  1. Wordの"エディット部分の"ハンドル"を取得
    1. GetCurrentPos() で現在座標取得
    2. PointToWindow() で現在座標のウィンドウハンドルを取得 ※カーソル下にWordのエディタ部が存在すると仮定
  2. GetWindowThreadProcessId() でスレッドプロセスIDを取得
  3. GetGetGUIThreadInfo() の戻り値 rcCaretを使う
    1. GUITHREADINFO構造体は、使う前にcbSize(サイズ)を指定する必要あり
    2. rcCaretの座標はクライアント座標である点に注意
  4. rcCaretの座標を、PointToScreen()でスクリーン座標に変換

参考:キャレット位置の取得方法 - HSPTV!掲示板
http://hsp.tv/play/pforum.php?mode=pastwch&num=25118

※ GetGUIThreadInfo()がうまく動作しなかった (2013/11/13 Word2010, Win7 32bitにて)

※ 参考 キャレット位置の取得方法 - HSPTV!掲示板

↑

Wordの標準機能を使う †

  1. ActiveWindow.GetPoint で指定した要素の絶対座標を取得
Dim pLeft As Long
Dim pTop As Long
Dim pWidth As Long
Dim pHeight As Long

ActiveWindow.GetPoint pLeft, pTop, pWidth, pHeight, Selection.Range

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索   ヘルプ   最終更新のRSS
Last-modified: 2013-11-14 (木) (1926d)
Site admin: D*isuke YAMAKAWA

PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.3.29. HTML convert time: 0.023 sec.