次の方法で共有

Word、Excelのツールバーメニューの無効化について

Anonymous
2012-03-16T04:29:43+00:00

VB.NETやVB6でWordやExcelのテンプレートに表示するようなアプリケーションを作成しております。

ですが、アプリケーションから表示されたWordやExcelのダイアログボックスが表示される(ファイルに名前をつけて保存機能)ことによって、

Exe等置いてあるアプリケーションサーバーのファイル等が編集可能となってしまい、

セキュリティ面でWordやExcelのテンプレートに表示するようなアプリケーションはNGとされています。

つきましてはVB.NETやVB6からWordやExcelのテンプレートを表示可能で、

WordやExcelのファイルに名前をつけて保存の機能を無効することやダイアログボックスでアクセス可能な範囲を指定すること、

ツールバー自体を無効することができないかご教示お願い致します。

あれば、具体的にどのようなコーディングや設定が必要になるかご教示ください。

Microsoft 365 と Office | Word | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-03-21T04:07:26+00:00

> Excel、Wordのダイアログ機能を無効にしたいです。

>

> Excel、Wordを利用する以上、ダイアログ機能を完全に制限を掛けるのは難しいのですね。

ある程度の制限でしたらCommandBarオブジェクトのEnabledプロパティをFalseにしたり(例:Application.CommandBars("Cell").Enabled = False)、ApplicationオブジェクトのOnKeyメソッドでショートカットキーを無効にしたり、といったことはできるのですが、大抵は何かしら抜け道はありますので完璧に制限をするのは難しいだろうと思います。

VBフォーラムでしたら、ここAnswersとは違った方向での回答がつくかもしれないですね。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2012-03-16T08:05:08+00:00

こんにちは。

質問者さんが何をどうされたいのかよく分かっていないのですが、VBアプリケーション上から、サーバー上のOfficeテンプレートを読み取り専用で表示したい(= サーバー上のテンプレートに変更を加えたくない)、というようなことでしょうか?

であればOfficeアプリケーションでファイルを表示するのではなく、DSO Framerコントロール等のサードパーティ製コンポーネントを使うことも考えてみてはいかがでしょうか?(サポートを考えるとDSO Framerはあまりお薦めできるものではないのですが・・・)

たとえばDSO Framerであれば、下記コードでファイルを読み取り専用で開くことができます(保存コマンド等も無効)。

Private Sub CommandButton1_Click()

  Dim i As Long

  With Me.FramerControl1

    For i = 0 To 8

      .EnableFileCommand(i) = False

    Next

    .Titlebar = False

    .Toolbars = False

    .MenuBar = False

    .Open "C:\Test\Sample.docx", True

  End With

End Sub

・ユーザーフォーム上にワークシートを表示する(Office)

http://www.ka-net.org/office/of50.html

現状どのようになっているのか分かりませんが、Officeアプリケーションでファイルを表示する以上ツールバーやメニューバーを無効化してもショートカットキーも無効にしなければ意味がありませんし、完璧に制限を掛けるのは難しいだろうと思います。

また、VB6/VB.NETの質問をされる場合はAnswersのOfficeフォーラムよりもMSDNのVBフォーラムの方が目的に合った回答を得やすいだろうと思います。

・Visual Basic

http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/threads

この回答は役に立ちましたか?

0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2012-03-28T00:49:30+00:00

    きぬあさ さん、アドバイスありがとうございます。

    yoshinori hara さん、こんにちは。 MSDN のフォーラムもぜひ、ご活用くださいね。

    同じような情報をお探しの方にもご参考になるよう、今回は私の方で \[回答としてマーク\] をいたしました。

    もちろんマーク後も返信は出来ますので、さらに質問がある場合は、ご遠慮なく投稿も行ってください。

    Office の操作や疑問については、Answers もご利用くださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2012-03-21T00:26:24+00:00

    ご回答ありがとうございます。

    助かります。

    >テンプレートを読み取り専用で表示したい(= サーバー上のテンプレートに変更を加えたくない)、と>いうようなことでしょうか?

     テンプレートを読み取り専用で表示したいというより、

     Excel、Wordのダイアログ機能を無効にしたいです。

     Excel、Wordを利用する以上、ダイアログ機能を完全に制限を掛けるのは難しいのですね。

     承知致しました。

     DSO Framerをご提案いただいていますが、ソフトウェアの利用制限があるため、難しいようです。

     ご提案いただきありがとうございます。

    >VB6/VB.NETの質問をされる場合はAnswersのOfficeフォーラムよりもMSDNのVBフォーラムの>方が目的に合った回答を得やすいだろうと思います。

     ご教示ありがとうございます。

     確かにおっしゃる通りであると思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません