マウスがある位置の色の情報を表示するソフトを利用して、 RGB情報を得ています。(例 RGB(204, 035, 035) 。 次のWORDマクロ動かし、RGB情報を手入力して欲しい結果を得ています。しかし、せっかくクリップボードに”RGB(204, 035, 035)”が入っていますので、それを自動的に以下のマクロに取り入れたいと考えております。どのようにすれば良いかアドバイスお願いできないでしょうか? なお, OSはWindows7を使用しています。Wordは2007です。
Sub ColorPaste()
'
Dim Red As Integer
Dim Green As Integer
Dim Blue As Integer
Red = InputBox("赤の数字を入れてください。")
Green = InputBox("緑の数字を入れてください。")
Blue = InputBox("青の数字を入れてください。")
Selection.InlineShapes(1).Fill.BackColor = RGB(Red, Green, Blue)
End Sub
No.3ベストアンサー
- 回答日時:
すいません、ざっくりとですが。
Dim CB As New DataObject, buf As String, Arr As Variant
Dim R As Integer, G As Integer, B As Integer
CB.GetFromClipboard
buf = CB.GetText
buf = Mid(buf, 5, Len(buf) - 5)
Arr = Split(buf, ",")
R = Arr(0)
G = Arr(1)
B = Arr(2)
Selection.InlineShapes(1).Fill.BackColor = RGB(R, G, B)
'または図形を選択して
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(R, G, B)
End Sub
先にMidを使って、クリップボードの内容から必要な部分だけ引き出しておきます。
Rgb(255,99,100) → 255,99,100
それをSplitを使って","で区切り、配列に格納、それぞれをR,G,Bに割り当てます。
R=255 G=99 B=100
多分、大丈夫だと思うのですが・・・
No.2
- 回答日時:
> Sample2で試したところ、CB As New DataObjectのところで、「ユーザー定義型は定義されていません。
」と表示これが回答中の
>> Microsoft Forms 2.0 Object Libraryを参照設定しておかないと
>> DataObjectを定義するところでエラーで止まります。
>> ツール→参照設定で見当たらない場合は、空のユーザーフォームを作るフリをすると出てきます。
の部分に当たります。
・・・と言うかすいません^^;
画像を添付したらよかったですね^^;
VBE(マクロを書くウィンドウ)のメニュー、
ツール→参照設定 を選択すると、図のようなダイアログが出てきますので、
「Microsoft Forms 2.0 Object Library」を探してチェックを入れてやってください。
これで見当たらない時はVBEのメニュー、挿入→ユーザーフォーム を選択し、
空のユーザーフォームを作り、そのあとで参照設定をもう一度してみてください。
今度は上の方にチェックが入った状態で出てくると思います。
その後、先般のマクロを走らせると、今度は動くようになっている・・はずです^^;
tsubuyukiさん
ありがとうございます。ご返事を見る前に補足として書き込みさせてもらいました。定義の件は解決したのですが、新しい質問を補足でさせてもらいました。 よろしくお願いします。
No.1
- 回答日時:
その
> マウスがある位置の色の情報を表示するソフト
がどんなソフトで、クリップボードにどのように格納されているかハッキリしませんが・・
とりあえず、
Sub Sample()
Dim CB As New DataObject,buf As String
CB.GetFromClipboard 'CBにクリップボードをDataObjectとして取得
buf = CB.GetText '変数bufにクリップボードのデータの文字を取得
MsgBox buf '取得した文字をメッセージボックスに表示
End Sub
こんな感じでクリップボードから取り出せます。
この場合、クリップボードの中身が「文字(または準ずるもの)」じゃないとエラーが返ります。
ちなみに、Microsoft Forms 2.0 Object Libraryを参照設定しておかないと
DataObjectを定義するところでエラーで止まります。
ツール→参照設定で見当たらない場合は、空のユーザーフォームを作るフリをすると出てきます。
おっしゃる通り、
> クリップボードに”RGB(204, 035, 035)”が入って
いるのであれば、
Sub Sample2()
Dim CB As New DataObject, buf As String
Dim R As Integer, G As Integer, B As Integer
CB.GetFromClipboard
buf = CB.GetText
R = Mid(buf, 5, 3)
G = Mid(buf, 10, 3)
B = Mid(buf, 15, 3)
Selection.InlineShapes(1).Fill.BackColor = RGB(R, G, B)
'または図形を選択して
'Selection.ShapeRange.Fill.ForeColor.RGB = RGB(R, G, B)
End Sub
で、出来る・・と思うのですが^^;
2007は手元に無いので確認とれずです、すいません^^;;
この回答への補足
tsubuyukiさんが説明されていたのに、私が見過ごしました。定義の問題は解決しました。
ところが私の間違いで、RGBが全て3桁でないことが分かりました。1桁もあれば、2桁もあります。この場合には当然エラーになってしまいます。何か解決方法はないでしょうか?
Sample1も問題なクリップボードの内容が表示されますが、
Selection.InlineShapes(1).Fill.BackColor = buf として受け渡すと「型が違う」となってしまいます。どのような型にすればよいのでしょうか?
お手数をおかけしますが、よろしくお願いします。
tsubuyukiさん、早速ありがとうございます。
RGB(204,035,035)とクリップボードに入っていますので、Sample2で試したところ、CB As New DataObjectのところで、「ユーザー定義型は定義されていません。」と表示されてエラーになってしまいました。VBAが初心者で良く理解できておりません。よろしくご指導お願いします。 なお、RGB表示にスペースがありませんでしたので、G = Mid(buf, 9, 3) B = Mid(buf, 13, 3) に書き直ししました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) ダブルクリックでセルの色を変える 1 2022/12/24 15:52
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 初めてマクロを入力しますが、テキストとおりに入力したのに構文エラーです。修正を教えてください。 3 2022/10/28 11:18
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordのデフォルト設定を初期値...
-
Wordで最初の入力文字がアルフ...
-
Excelで書式設定の変更ができない
-
autocad右クリックメニューが表...
-
エクセル2007 入力数字が...
-
Excelのグレーの部分を戻したい
-
エクセルの罫線がパワポに貼り...
-
1回のみ折り曲げる矢印を作りたい
-
Excelで上下に同じ書類を作成す...
-
エクセルでの文字ズレを直す方...
-
エクセルの行が隠れている
-
A4用紙を8分割したい
-
エクセルで中心線を表示させる...
-
印刷ページが急に数100ページに...
-
エクセルで謎の2枚目が印刷される
-
エクセルの縦の幅だけ拡大したい。
-
「」や()を使うときの簡単な...
-
ワードで数直線の作り方を教え...
-
エクセルでA4 2枚をA3 1枚で印...
-
ページが増える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Wordのデフォルト設定を初期値...
-
Wordで最初の入力文字がアルフ...
-
Excelで書式設定の変更ができない
-
Excelでコメントの書式のデフォ...
-
FIREFOXのアプデでメニューバー...
-
autocad右クリックメニューが表...
-
ChromeでSpeed Dial 2のサムネ...
-
エクセル2007 入力数字が...
-
右クリックメニュー「コメント...
-
Proxy伝説知ってる方
-
背景に画像を表示できるテキス...
-
「2e+011などの計算方法。」
-
Super Tag Editor v2.02
-
Wordでスペースが勝手に挿入さ...
-
辞書ATOKの設定変更で困っています
-
画像左上の数字を消すには?
-
WORD VBA
-
Thunderbirdでの返信
-
lameのプリセットについて・・・。
-
Word2003:1行の背景の色を変...
おすすめ情報