• ベストアンサー

エクセルのマクロからコメントの書式設定をしたいのですが・・・。

VBA初心者です。よろしくお願いします。昨日も同じ質問をしたのですが、誰にもお答えいただけなかったので、もう一度・・・。 今、プロテクトのかかっているシート上で、マクロからコメント作成、編集ができるようなプログラムを作っているのですが、マクロからコメントの書式設定ダイアログを表示させて、ユーザーが任意に書式を設定できるような仕様にしたいのですが、どうしたらよいのでしょうか? 詳しい方、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

ご指摘のように、事前にコメントの書式設定のダイアログを出していないとこのマクロは動きませんでした。事前に他のBookでこのダイアログを出していればうまく動きました。 なぜ??? 以下は調べた結果です。多分に推測が入っています。(この辺が一般人の悲しさ!) オプション→ユーザー設定のコマンドタグの中の図形描写のコマンド『オブジェクト...』を使いたかったのですが、このコマンドの説明を読むと、   [図/オートシェイブ/オブジェクト/コントロール]([書式]メニュー)    選択した図、オートシェイブ、オブジェクトなどの線、塗りつぶし、パターン、    サイズ、位置、およびその他のプロパティを設定します。    選択した対象によって、コマンド名は変わります。 と書いてあります。(『選択した対象によって、コマンド名は変わります』が重要?)ということは、   最初に探しにいった時には『コメントの書式設定』というコマンドは無い状態だった というのが私の推測です。一旦出せば、『コメントの書式設定』というコマンドが実在することになる?? コマンドを名前で指定したのが問題(?)でした(多分) 対応策として   myCmd.Controls(10).Execute 'コメントの書式設定を実行 としてみました。『10』は『オブジェクト...』のインデックスです(私のExcelですが) Excelを立ち上げて、最初に修正後のマクロを動かして動作確認はしました。 試しに修正してみて下さい。 また、使用される場合は、エラー処理部分を下記の様に修正して下さい。保護を解除したままでした。   MsgBox "コメントはありません"   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 色々、おさがわせしました。

shige0517
質問者

お礼

度々ありがとうございます。 無事、エラーも出ず、解決いたしました! なんか凄いプログラムを作った気になります。はい。 本当に何回も、お世話になりました。 ありがとうございました。

その他の回答 (3)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

myCmd.Controls("コメントの書式設定(&O)...").Execute を myCmd.Controls("コメントの書式設定(O)...").Execute と変えたらどうでしょうか。半角大文字のオー『O』です。 回答で『探している』と書いたのは、コメントを選択して右クリックして、プルダウンメニューの中に書かれている『コメントの書式設定・・・』の文字を正確に記入する必要があったからです。shige0517さんのPCで実際そのメニュー内の文字を確かめられてモジュールの中に書けばいいと思います。この回答は多分、『コメントの書式設定(O)...』ではないかとの推測で書いています。

shige0517
質問者

補足

ありがとうございます。 う~ん、だめです。エラーがでてしまいます。 一度シートの保護を手動ではずして、右クリックでコメントの書式設定ダイアログを表示させ、また保護をかけて再びこのプログラムを実行すると正常に動くことがわかりました。 原因はまったくわかりません。 nishi6さん、おわかりになりますでしょうか?

  • nishi6
  • ベストアンサー率67% (869/1280)
回答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

shige0517
質問者

お礼

お礼が送れて申し訳ありません。ご回答、ありがとうございました。参考になります。 ご不明の点ですが、 (1)は、nishi6さんのプログラムのような動きでいいのです。 (2)コメントの挿入、削除のプログラムはもうすでに他の機能としてつくってあります。ですから挿入されたコメントの書式をユーザーが任意に変えられるようにする機能を追加したい、ということです。 (3)これは、このプログラム自体、最初からウチの会社で作っていて、その追加機能としてコメントの書式設定をつけようということになったものなので、問題ありません。要は、そういう仕様なのです。 nishi6さんのプログラムですが、 myCmd.Controls("コメントの書式設定(&O)...").Execute 'コメントの書式設定を実行 のところでエラーが出てしまうようなのですが・・・。エクセルは2000です。 おそらくこのエラーが出る原因がわかれば、nishi6さんのプログラムが最善だと思うのですが。

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

一番簡単な方法です。※不完全ですが 仮に、アクティブセルにコメントがある場合、 ActiveCell.Comment.Shape.Select Application.Dialogs(xlDialogFontProperties).Show とすれば、OKです。 ※不完全というのは、「フォント」のタグ分しか設定できません。  コメントの書式は、「フォント」「配置」「サイズ」「保護」「プロパティ」「余白」タブで構成されます。いろいろ調べましたが、ヘルプからはこれ以上解りませんでした。

shige0517
質問者

お礼

お礼が遅れて申し訳ありません。ご回答ありがとうございます。 とりあえず、この方法でプログラムを制作しました。確かに「フォント」タグしか出ないですが、プロテクトのかかっていないシート上で普通に右クリックで書式設定ダイアログを表示させても同じなので、いいかな、と。 でもできれば他のタグも表示させたいですね・・・。 非常に助かりました。ありがとうございました。

関連するQ&A

  • Excel VBA : セルのコメントの書式設定をするマクロを教えて下さい。

    タイトルどおりですが、マクロの記録で生成されたスクリプトを実行してもエラーになってしまいます。 どう記述すれば良いのか、教えて下さい。 やりたいことは、次の設定の操作をVBAで行いたいです。 セルに既に設定されているコメントの書式設定の "プロパティ" タブの "オブジェクトの位置関係" を、"セルに合わせて移動するがサイズ変更はしない" に設定です。 つまり、セル毎に噴出しのように表示されるコメントの、その枠を右クリックして、"コメントの書式設定" で開くダイアログの設定を自動化したいです。 セル1つ分の設定マクロで十分です。 変更したいコメントがあまりにも多くて困っております。 よろしくお願い致します。

  • エクセル コメントの書式設定について

    こんにちは。あるエクセルの表で、例では日付にコメントを入れた際に、 フィルタオプションでフィルタを掛けると、コメントの矢印が伸びてしまいます。 コメントは毎回数人で入れるようで、コメントの書式設定の、プロパティで「セルに合わせて移動するがサイズ変更はしない」を選択すれば、矢印のサイズは変わりません。ただ、毎回複数あるコメントに対して、ひとつずつ、書式設定を変更とするのは かなりしんどいです。 なにかいい方法はございませんでしょうか? マクロ等で最初から書式設定を設定することは可能でしょうか? ご教授頂きたいです。宜しくお願い致します。

  • エクセル コメントの書式の設定

    エクセルでコメントを入力する際、 太文字ではなく、フォントの大きさも一定の大きさに 設定したいのです。 シートによって変わったりしてしまうので、 毎回これを直すのが面倒です。 一定の書式に設定することは可能でしょうか。 教えてください。

  • 【エクセル】コメントの初期(固定)書式を設定したい。

    いつもお世話になってます。 エクセル2003について以下の点についてご教示ください。 セルにコメントをよく付ける作業があるのですが、コメントと入れようとすると、コメントの書式が「サイズ:9、スタイル:太字」になっています。 私は、標準の12でコメントを入れたく、この為コメントの書式をいちいち直さなくてはなりません。 シートごとに違うコメントの書式を設定したい。と贅沢は言いませんが、ブック全体に保存して再度開いても変わらないコメントの書式を設定するには、どうすればいいのでしょうか? よろしくお願いします。

  • excelで書式設定ができません。

    excel2000を使っており、データが入ったファイルを もらったのですが、なぜだか書式設定ができません。 右クリックの書式設定、書式(O)→セル(E)ともに 表示はされるのですが、選択しても何も起きません。 ctrl+1、も何もおきません。 ツール(T)→保護(P)を選んでみても、 "シート保護の解除"は出ないので、 シート保護等はされていないと思われます。 さらに、ツール(M)→マクロ(M)→マクロ(M)も 何も表示されないのでマクロも組まれていないようです。 どなたか原因がお分かりになる方がいらっしゃったら お返事お願い致します。

  • エクセル(書式設定)?ペイント&コメント…。長文!

    基本的な事なのですが、まずエクセル作成中にコメントを挿入しようとします。その際、セルの書式設定で言うと⇒コメント枠ないの文字の大きさや横位置を中央揃えにする事は出来るのですが、両側揃えは出来ないのでしょうか?コメント内の文字をセル書式設定で例えると文字の配列の編集は出来ないのでしょうか?また同じように画像を右右クリックから編集(ペイント)をする際も同じように、テキストを挿入時にエクセルで言うセルの書式設定の文字の配列を変えたりする事は出来ないのでしょう?どうぞ宜しくお願いしますm(_ _)m

  • コメントの書式設定

    シート内に幾つかコメントがあります。 一括でコメントの書式設定を行いたいのですが、どうすればよいのでしょうか。 やりたいことは自動サイズ調整です。デフォルトで自動サイズ調整にチェックを入れられれば良いのですが、出来ないようですので質問させていただきました。 OS Windows7 SP1 Excel 2010 SP2(MS Office Pro Plus 2010)

  • エクセルの書式の設定

    エクセルの書式の設定にはいろいろなパターンがありますが、ユーザー定義も含めて、いろいろな書式が設定してある複数のセルでもシートを全指定して一気にセルの書式設定で定めれば、もとの書式設定のデータは書き換え後は残っていないのでしょうか。残っている、いないにせよ、集計等の後のデータ処理に影響はないのでしょうか。

  • コメントの書式の規定値は変更できますか?

    エクセル2000で、いつもコメントを挿入してから 編集してフォント数や文字の色などを変えているのですが、 毎度毎度でとても面倒です。 コメントの書式の規定値を自分で設定変更することはできますか? (ユーザー設定とか?) 言葉足らずですみません。 よろしくお願いします。

  • Excelの書式設定の追加が出来ません

    Excelでセルの表示形式の書式設定をユーザー定義で設定追加しようとすると、ユーザー定義の追加は出来ませんとエラーがでます。 シートに保護もかかっていません。 どうしたら書式の設定が追加できるでしょうか?

専門家に質問してみよう