• 締切済み
  • 困ってます

Excel VBA で Richtextboxを使うことは出来ますか?

ExcelでRichTextBoxを使おうとして、Microsoft Rich Textbox Control(SP6)を コントロールの追加を使って登録しました。いざ、フォームに置こうとすると「サブジェクトは指定された操作に対して信頼されていません」というエラーが出ます。このエラーを回避する方法か、複数行が書けるラベルコントロールのようなものはあるでしょうか

  • tx1
  • お礼率53% (74/139)

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数4332
  • ありがとう数4

みんなの回答

  • 回答No.6

> 同じ症状ですね・・・ ご質問文や補足を読めば、わかる・調べるスキルがある方なのは、 わかりますが、、、、なんだかなぁ。。。 http://support.microsoft.com/default.aspx?scid=kb;en-us;827742

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • RichTextBox使用できない

    RichTextBoxを使いたいのですが、参照設定できません。 「プロジェクト-コンポーネント」メニューのコントロールでチェックを入れOKを押すと 「この名前は既にあるモジュール、プロジェクト、オブジェクトライブラリで使われています。」 というエラーが出ます。 通常のインストールで入っているのでしょうか? ツールボックスにはありませんので、フォームには配置はできません。 環境は、VB6.0+Windows2000です。

  • 【VBA】の記述でお助けください。

    excel2003を利用しています。 社内で共有で利用しているファイルがあります。 そのファイルのユーザーフォームで、添付している写真のような listview (リストボックスの一種)を利用しています。 このlistviewをどの端末でも利用できるようにするためには、 各端末にVBEの Microsoft ListView Control 6.0(SP4) というコントロールを追加しなくてはいけません。 そこで、このlistviewが使われているファイルを開くと、自動的に Microsoft ListView Control 6.0(SP4) が追加されるようにしたいです。 WorkbookのOpenメソッドに何らかの記述をしてやればよいと考えていますが、 どういった記述をすればよいか等、教えていただけないでしょうか? 以上 よろしくお願いいたします。

  • Excel VBA コントロールの追加方法

    こんにちわ おわかりになるかた、教えてください。 ExcelVBA で、下記の様な方法でラベルコントロールを追加できるのですが、 ステータスバーとリストビューを追加する方法がわかりません。 set myControl = myForm.Designer.Controls.Add("Forms.Label.1") 追加したいステータスバーは下記となります。 Microsoft StatusBar Control, version 6.0 Microsoft ListView Control, version 6.0 よろしくおねがいいたします。

  • 回答No.5
noname#22222

s_husky です。 RichTextBox ----------- 使えません! Threed panel control -- 使えます! Threed panel control は、VB5からVB6への移行時にセット用のバッチファイルが配布されたと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

わざわざ補足説明ありがとうございます。 Thread panel controlを探してみたのですが、Excel 2003には入っていないのですね・・・。配布ファイルを探すしかないのでしょうか。マイクロソフトのダウンロードセンターでは見つけることが出来ませんでした。

  • 回答No.4

> Excel2003で使えますか・・・。 #1 で s_husky さんは、RichTextbox で使用しないで、TextBox で済ませた、、 とコメントされてます。TextBox の MultiLine を使ってはどうか、、という アドバイスが意図だと思います。使える、、とは言及されてないですよ。 確かに OfficeXP 以降は RichTextbox はセキュリティーホールがあるため、 使えなくなったと OFFICE カテで以前話題にあがっていたと記憶しています。 でも、今検索してもその情報が見つからないんですよね~... MSDN や Google でもそれらしい情報を見つけられません。が、事実私の環境では、 WindowsXP + Excel2002 ですが、やはり、RichTextbox はフォームに配置すら できません。「信頼されてません」とアラートが表示されます。 Excel 2000 以前では OK みたいですね。 VBA 標準コントロールではないので、情報量が少ないのは当然として、ひょっと するとタブー視されてるのかな? 私見ですが、確かに RitchTextbox は HTML 表示に係るセキュリティーホールが ほったらかし状態ですし、NT 系 OS での挙動が不安定だとの話も聞きますので、 Label や Textbox を上手く使うか、OCX を探すか、、という方向で見直した方が 良いのかもしれません。 多彩な書式を使う、、という用途なら、WEB Browser コントロール が代替で使え そうですけどね。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>アドバイスが意図だと思います。使える、、とは言及されてないですよ そうですね。私が勘違いしていました・・・ >「信頼されてません」とアラートが表示されます 同じ症状ですね・・・ ご指摘ありがとうございました

  • 回答No.3

ラベルでも、 途中にスペースを入れてトコロテン式に押し出せば それっぽく見えます。行数が多いと煩雑でしょうけど。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

それですと、印刷した時と画面の文字数が違う時があるので、なるべく使いたくないのです・・・

  • 回答No.2

Excel 2000 ですが問題なくフォームに置く事が可能です。 RichTextBox はExcel標準では入っていないコントロールなので、他の環境でも使用する事をお考えの場合は利用を控えた方が良いでしょう。 TextBox でもMultiLine = Trueとすれば複数行の記入が可能です。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
noname#22222

Excel は操作したことがない門外漢ですが、やむなく、請求書、営業報告書を作ったばかりです。(Excel2003) 私は、何も考えずに TextBox を使いました。 40数行を中途改行も含めて表示しております。 ※検討違いであれば無視して下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

Excel2003で使えますか・・・。コントロールの追加は私の書いた方法で合っているでしょうか?

関連するQ&A

  • 突然MsComm組込 エクセルVBAが動かない。

    VB6のMsCommが組み込まれたが自作エクセルVBAプログラムが、先週、突然動かなくなってしまいました。業務として使われているソフトであるため、なぜ動かなくなってしまって困っています。 ちなみに、フォームにMsCommコントロールを貼り付けてみたところ、「サブジェクトは指定された操作に対して信頼されていません。」とメッセージが出てしまいました。 またWindowsをプログラムが正常に動いていた時点まで、復元しても効果がありませんでした。再びプログラムを使える方法を教えてくれませんか? お願いいたします。

  • DBグリットコントロールについて

    OSは、Meを使っているVB初心者なのですが、 DBグリットコントロールMicrosoft Data Bound Grid Control 5.0(SP3)を表示したかったのですが見つかりませんでした。仕方なくMicrosoft Data Grid Control 6.0(OLEDB)を使用したのですが、メッセージが・・・このコントロールには互換性のあるデータソースがありません。プロジェクトまたは、フォームにDataEnvironmentのようなOLEDBデータソースまたはADOデータソースコントロールを追加してください。と表示されました。どういうことなのでしょうか? あと、Microsoft Data Bound Grid Control 5.0(SP3)はどのファイルにあるのでしょうか?

  • 「問題が発生したため、MicroSoft Office Excelを

    「問題が発生したため、MicroSoft Office Excelを Excel 2007 のVBAで日報を入力する簡単なフォームを作ったのですが、コントロールのTextBoxをダブルクリックすると標題の「問題が発生したため、MicroSoft Office Excel を終了します。ご迷惑をおかけして申し訳ありません。」のエラーが出ました。そこで「作業内容を回復し、MicroSoft Office Excel を再起動する(R)」のチェックを入れて、「送信しない」をクリック、待つことしばらくして回復した後に上記の作業のコントロールを再度ダブルクリックすると、正常に作動しました。しかし一度アプリケーションを終了したのち、再起動後に又行うと同じエラーになります。ちなみに上記のダブルクリックで別のメニューのフォームをVBAマクロで開くようにしています。かなりコントロールを追加したり削除してますので、ファイルが壊れたのでしょうか?。作り替えないで回復する方法はありますでしょうか?どなたかお分かりになる方がいらっしゃいましたら、教えていただければ思います。

  • ExcelVBAでListViewが使用できない

    ノートパソコン(Windows7 64bit、EXCEL 64bit)を使用して、VBAでツールを作成しています。 フォーム上にListViewを追加したいのですが、コントロールの追加ダイアログにて 「Microsoft ListView Control, version 6.0」がリストがないので追加することができません。 参照設定にも「Microsoft Windows Common Controls 6.0(SP6)」がありませんでした。 これが原因かと考え、System32に「MSCOMCTL.OCX」がなかったので、 ListViewの使える他のパソコン(Windows7 32bit、EXCEL2010 32bit)から 「MSCOMCTL.OCX」を持ってきて入れました。 すると参照設定で「Microsoft Windows Common Controls 6.0(SP6)」を選べるようになったのですが、 未だにコントロールの追加ダイアログ上ではListViewの利用ができない状態でした。 職場のほとんどパソコンではListViewが使用可能なのですが、 ListViewが使用できないパソコンの条件などあるのでしょうか? ご回答お待ちしておりますのでよろしくお願い致します

  • Visual C++のrichtextboxの記述について質問

    Visual C++のプログラミングについて質問があります。 使ってるプロジェクトはVisuaC++ CLRのwindowsフォーム アプリケーションで作ってます。 今、メモ帳などのテキストエディタを作っているのですが、 ある特定の文字だけを部分的に青文字にするにはどのように 書けばよいでしょうか? 最初はコントロールにtextBoxを使って イベント関数をこのようにしてたのですが private: System::Void-------------------- { if(textBox1->Text = "japan") textBox1->ForeColor = Color::Blue; else textBox1->ForeColor = Color::Black; } この場合ですと、"japan"とtextBox内に入力されれば フォントが青色になるのですが例えば "japanef aiueo"と入れると青色にはなりません。 例えば "japanaiueo ef efefefadafffda"と入力されると japanと綴られている所だけフォントを変えたいのですが、 どのように記述すればよいのでしょうか? 自分なりに考えると、TextBoxではなくRichTextBoxのfind関数を 使えばいいのではないかと思うのですが、どのように記述すれば よいのか悩んでいます もしお分かりいただける方がいれば教えてくださると幸いです。

  • Excel VBA 全部のUserForm名

    OSはXP、 Excelは2003 を使用しています。 色々なサイトを参考にさせて頂いて作ったブック内のコントロールを表に書き出すマクロが下記になるのですが、 ユーザーフォーム名を都度書き換えないといけないので、 同時にブック内のユーザーフォーム名を変数に格納する方法をどなたか教えて頂けないでしょうか? Sub test() Dim c As Control, r As Long Dim d As Control Load frmCustomerEntry  ’←☆ Worksheets("Sheet1").Activate r = 3 Cells(1, 1) = ("コントロール数:" & frmCustomerEntry.Controls.Count)  ’←☆ Cells(2, 1).Value = "No" Cells(2, 2).Value = "名前" Cells(2, 3).Value = "種類" Cells(2, 4).Value = "Caption" Cells(2, 5).Value = "高さ" Cells(2, 6).Value = "幅" Cells(2, 7).Value = "Top" Cells(2, 8).Value = "Left" Cells(2, 9).Value = "Enabled" For Each c In frmCustomerEntry.Controls Cells(r, 1).Value = r - 2 Cells(r, 2).Value = c.Name Cells(r, 3).Value = TypeName(c) If TypeName(c) = "TextBox" Then 'captionの項目がないのでエラー回避 Cells(r, 4).Value = "" ElseIf TypeName(c) = "ListBox" Then 'captionの項目がないのでエラー回避 Cells(r, 4).Value = "" Else Cells(r, 4).Value = c.Caption End If Cells(r, 5).Value = c.Height Cells(r, 6).Value = c.Width Cells(r, 7).Value = c.Top Cells(r, 8).Value = c.Left Cells(r, 9).Value = c.Enabled r = r + 1 Next c On Error GoTo 0 End Sub ***************** ブックの中にユーザーフォームが10数個あります。 名前は任意に名前に変更しています。 全て「frm」が頭に付いていて以下はバラバラです。 説明不足なところもあるかもしれませんが、 どうかよろしくお願い致します。

  • Excel VBA: UserForm.Show で実行時エラー

    たびたびお世話になります。 結構大きなフォームを作成して、ようやく開発が終了したのですが、ある時を境に急にフォームを表示しようとすると実行時エラーになります。  Microsoft Visual Basic  -------------------------------------------------------------  実行時エラー'-2147417848 (80010108)':  'Value' メソッドは失敗しました 'IMdcOptionButton'オブジェクト このあと、ご迷惑をおかけします、現象を Microsoft に報告しますというメッセージが出ます。 いつもメッセージは一緒です。 不思議なことに、Excel を起動し、Alt+11 で VBE を起動し、フォームを開発用に開き、再生ボタンをクリックしてフォームを表示させると、無事表示されます。 一度無事に表示されると、いつもやっているようにマクロから Show で表示しても表示されます。 これも必ず再現されます。 どうすれば回避できるでしょうか。 何かわかればよろしくお願いします。 OS は Windows XP SP2、 Office は 2007 (12.0.6331,5000) SP1 MSO (12.0.6333.5000) です。 ここまで苦労して開発してテストして、さっき顧客にできたからいまから送ると言ったのに泣きそうです :-(

  • Labelコントロールの(左右)余白について

    最近になってMicrosoft Visual Basic 2008 (ProfessinaolEdition)を触り始めたばかりです。 「Windowsフォームアプリケーション」で作成しています。 Labelコントロールって、TextBoxと比べて、コントロール内(左右)に少し余白がありますよね?Paddingプロパティを0にしてもこの余白はそれ以上小さくなってくれません。 これを、TextBoxと同じぐらいのギリギリ右に寄せて表示することはできないものでしょうか。 それをやろうとすると、Labelを2つ重ねたり、またはカスタムコントロールを作る等の方法しかないでしょうか。 それとも、私が何か凄い勘違いや見落としをしているのでしょうか?? ご指摘いただけるか、或いは回避方法等をご存じの方、おられましたらお願いします。

  • VB6のツールボックスへのコンポーネントの追加

    VB6(SP6)のツールボックスですが、コンポーネントを追加した後にVBを保存して閉じ、再度開くと、先に追加したコンポーネントが表示されません。(再度追加は可能です) OSは2000です。 <具体例> (1).コンポーネントの追加で Microsoft DataGrid Control 6.0(SP6)(OLEDB) をチェックして適用(OK)。 (2).DataGridをフォーム内に作成。 (3).プロジェクト、フォームを保存して閉じる。 (4).起動してみるとツールボックスには先程追加したMicrosoft DataGrid Control 6.0(SP6)(OLEDB)がなく、フォーム内にもDataGridが白抜きの状態になっています。 ツールボックスの保存機能はあるのでしょうか? 毎回ファイルを開く度にコンポーネントを追加しているため手間がかかっております。教えていただけないでしょうか。お願いします。

  • Excel VBA ユーザーフォームについてs

    ExcelVBAでユーザフォームを作成していますが行き詰まっています。 お助け下さい m(__)m VBAの処理内容を新Sheetへ保存し、 その内容をユーザフォームへWorkSheetとして表示させて エンドユーザに直接編集してもらおうと思っています。 ユーザフォームの『コントロールの追加』で「Microsoft Office Spreadsheet XX.X」を追加して 空のWorkSheetを追加することは出来たのですが、 このWorkSheetを空でなく前出の処理内容を反映したSheetにすることは出来るでしょうか? VBA処理 ⇒ 結果反映WorkSheet(1)作成 ↓ ユーザフォーム表示 : (1)を表示したい よろしくお願いします。