No.1
- 回答日時:
一番簡単な方法です。
※不完全ですが仮に、アクティブセルにコメントがある場合、
ActiveCell.Comment.Shape.Select
Application.Dialogs(xlDialogFontProperties).Show
とすれば、OKです。
※不完全というのは、「フォント」のタグ分しか設定できません。
コメントの書式は、「フォント」「配置」「サイズ」「保護」「プロパティ」「余白」タブで構成されます。いろいろ調べましたが、ヘルプからはこれ以上解りませんでした。
お礼が遅れて申し訳ありません。ご回答ありがとうございます。
とりあえず、この方法でプログラムを制作しました。確かに「フォント」タグしか出ないですが、プロテクトのかかっていないシート上で普通に右クリックで書式設定ダイアログを表示させても同じなので、いいかな、と。
でもできれば他のタグも表示させたいですね・・・。
非常に助かりました。ありがとうございました。
No.2
- 回答日時:
再度の質問たいへんですね。
深刻さが伝わった?のでちょっと考えてみました。先に不明点を
(1)コメントをSelectする場合、これをVisibleにする必要があると思います。
・・・これはシートの設定次第なので、下記では、表示させて、編集が終われば非表示にしています。
(2)ユーザーが任意に設定とありますが、コメントの挿入、削除もあるのでしょうか。
・・・これは不明なため設定してあるコメントのみ対応しています。
(3)そもそも、プロテクトがかかっているシートをユーザーが任意にイジッていい?
・・・これは不明点というより、疑問点ですね。
・・・下記では、パスワード等のことは考慮していません。
普通にDialogs・・・.Showでは目的のダイアログは出ないと思います(?)ので、コマンドバーから探して(?)います。Excel2000で動作確認しました。Excel97とか他は不明です。
実際動かしてみての感想ですが、ショートカットキーに割り当てた方が処理しやすいようです。参考にして下さい。質問の意味と違うところがあれば補足して下さい。
標準モジュールに貼り付けます。
Sub CommentEdit()
On Error GoTo ErrorHandler 'エラー対応(コメントがないセルで実行した場合)
ActiveSheet.Unprotect '保護を解除
ActiveCell.Comment.Visible = True 'コメントを表示させる
ActiveCell.Comment.Shape.Select 'コメントを選択
Dim myCmd As CommandBar 'コメントの書式設定を含むコマンドバー
Set myCmd = CommandBars("Shapes")
myCmd.Controls("コメントの書式設定(&O)...").Execute 'コメントの書式設定を実行
ActiveCell.Comment.Visible = False 'コメントを非表示にする
'シート保護。データ、オブジェクト、シナリオにチェック。パスワードなしで作成。(必要なら編集して下さい)
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
'エラー処理ルーチン(コメントがない!)
ErrorHandler:
Err.Clear
MsgBox "コメントはありません"
On Error GoTo 0
End Sub
お礼が送れて申し訳ありません。ご回答、ありがとうございました。参考になります。
ご不明の点ですが、
(1)は、nishi6さんのプログラムのような動きでいいのです。
(2)コメントの挿入、削除のプログラムはもうすでに他の機能としてつくってあります。ですから挿入されたコメントの書式をユーザーが任意に変えられるようにする機能を追加したい、ということです。
(3)これは、このプログラム自体、最初からウチの会社で作っていて、その追加機能としてコメントの書式設定をつけようということになったものなので、問題ありません。要は、そういう仕様なのです。
nishi6さんのプログラムですが、
myCmd.Controls("コメントの書式設定(&O)...").Execute 'コメントの書式設定を実行
のところでエラーが出てしまうようなのですが・・・。エクセルは2000です。
おそらくこのエラーが出る原因がわかれば、nishi6さんのプログラムが最善だと思うのですが。
No.3
- 回答日時:
myCmd.Controls("コメントの書式設定(&O)...").Execute を
myCmd.Controls("コメントの書式設定(O)...").Execute
と変えたらどうでしょうか。半角大文字のオー『O』です。
回答で『探している』と書いたのは、コメントを選択して右クリックして、プルダウンメニューの中に書かれている『コメントの書式設定・・・』の文字を正確に記入する必要があったからです。shige0517さんのPCで実際そのメニュー内の文字を確かめられてモジュールの中に書けばいいと思います。この回答は多分、『コメントの書式設定(O)...』ではないかとの推測で書いています。
この回答への補足
ありがとうございます。
う~ん、だめです。エラーがでてしまいます。
一度シートの保護を手動ではずして、右クリックでコメントの書式設定ダイアログを表示させ、また保護をかけて再びこのプログラムを実行すると正常に動くことがわかりました。
原因はまったくわかりません。
nishi6さん、おわかりになりますでしょうか?
No.4ベストアンサー
- 回答日時:
ご指摘のように、事前にコメントの書式設定のダイアログを出していないとこのマクロは動きませんでした。
事前に他のBookでこのダイアログを出していればうまく動きました。 なぜ??? 以下は調べた結果です。多分に推測が入っています。(この辺が一般人の悲しさ!)オプション→ユーザー設定のコマンドタグの中の図形描写のコマンド『オブジェクト...』を使いたかったのですが、このコマンドの説明を読むと、
[図/オートシェイブ/オブジェクト/コントロール]([書式]メニュー)
選択した図、オートシェイブ、オブジェクトなどの線、塗りつぶし、パターン、
サイズ、位置、およびその他のプロパティを設定します。
選択した対象によって、コマンド名は変わります。
と書いてあります。(『選択した対象によって、コマンド名は変わります』が重要?)ということは、
最初に探しにいった時には『コメントの書式設定』というコマンドは無い状態だった
というのが私の推測です。一旦出せば、『コメントの書式設定』というコマンドが実在することになる??
コマンドを名前で指定したのが問題(?)でした(多分)
対応策として
myCmd.Controls(10).Execute 'コメントの書式設定を実行
としてみました。『10』は『オブジェクト...』のインデックスです(私のExcelですが)
Excelを立ち上げて、最初に修正後のマクロを動かして動作確認はしました。
試しに修正してみて下さい。
また、使用される場合は、エラー処理部分を下記の様に修正して下さい。保護を解除したままでした。
MsgBox "コメントはありません"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
色々、おさがわせしました。
度々ありがとうございます。
無事、エラーも出ず、解決いたしました!
なんか凄いプログラムを作った気になります。はい。
本当に何回も、お世話になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スケッチスタイルの有効化
-
差し込み印刷で反映されないフ...
-
改行すると一段、間が開いてし...
-
課題で、Wordを使って提出する...
-
【エクセル】コメントの初期(...
-
【EXCEL2003】セルの書式設定で...
-
C言語のprintf()関数の「f」の意味
-
箇条書きの記号の色が勝手に変わる
-
箇条書きや段落番号の行頭文字...
-
ワードで棒線が直接文章に入る...
-
スタイルで網掛けを文字を対象...
-
Excelの集計がSUM関数で、1円...
-
<条件追加/スプレッドシート>...
-
Open office Writerで余白の調整
-
Gmailが変です! メールを書こ...
-
OpenOfficeの用紙のサイズ変更で
-
「テーブルとして書式設定」で...
-
Excel のセル表示について
-
【Word】箇条書きについて【2013】
-
ACCESSの24時間以上の表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スケッチスタイルの有効化
-
Excelの集計がSUM関数で、1円...
-
差し込み印刷で反映されないフ...
-
【エクセル】コメントの初期(...
-
Access→Excelへエクスポートす...
-
【EXCEL2003】セルの書式設定で...
-
Open office Writerで余白の調整
-
OpenOfficeの用紙のサイズ変更で
-
改行すると一段、間が開いてし...
-
箇条書きの記号の色が勝手に変わる
-
ワードで棒線が直接文章に入る...
-
「テーブルとして書式設定」で...
-
エクセルで和暦表示の桁合わせ...
-
WORD 書式の設定ではない黄色の...
-
課題で、Wordを使って提出する...
-
エクセル 電話番号に市外局番...
-
教えてください! アクセスの書...
-
Excelについて
-
C言語のprintf()関数の「f」の意味
-
スタイル同じなのに表示が異なる
おすすめ情報