• ベストアンサー

TextBoxにExcelの背景色を取得

こんにちは、VB2008を使用しています。 TextBoxにExcel内の文字と、その文字が入っているセルの背景色を取得しようとしています。文字の取得は TextBox1.Text = sheet.Range("A1").Value で出来るのですが、背景色の取得は TextBox1.BackColor = の = 以降がわかりません。どなたか教えて頂けなしでしょうか?

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.7

よくしらべてみました。 それ用のVB2008にクラスが用意されてました。 TextBox1.BackColor = ColorTranslator.FromWin32(sheet.Range("A1").Interior.Color) です。

caster01
質問者

お礼

ありがとうございます、無事解決いたしました。何回も回答を頂き本当にありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.6

sheet.Range("A1").Interior.Colorもだめですね。 思ったより難しいですね。 これはRGBを10進数で返すだけですね。 まず16進素に直してRGB要素を分ける必要があります。 一方TextBox1.BackColor =に指定する色は、 colorオブジェクトを継承して、RGBから自分で作る必要がありそうです。 Dim mycolor As Color mycolor.G = g .....

すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.5

No.4さんの書いているように”色値”でとらないと 単なる数値になってしまいます。 sheet.Range("A1").Interior.Color

caster01
質問者

補足

何度も申し訳ありません。 ExcelのA1を黄色にすると、TextBoxも黄色で表示したいのですが、 sheet.Range("A1").Interior.Color=RGB(0,255,0)とか sheet.Range("A1").Interior.ColorIndex=6 にしてもエラーになってなってしまいます。

すると、全ての回答が全文表示されます。
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

確認していませんが…  sheet.Range("A1").Interior.Color とか  sheet.Range("A1").Interior.ColorIndex ではダメでしょうか? 前者はRGB関数による色値、後者はカラーテーブル上の番号

すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

補足 ColorIndexは1-51の整数値です。 何番が何色かわ、その人のカラーパレッドの順番だから 厳密には分からないようです。

すると、全ての回答が全文表示されます。
noname#187541
noname#187541
回答No.2

こんにちは。 Range("A1").Interior.ColorIndex でどうでしょうか。 ちなみにこのような書式に関することは、エクセルの「マクロの記録」を使用し、書式を設定するマクロを記録してみれば分かると思います。

すると、全ての回答が全文表示されます。
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

文字の色 sheet.Range("A1").Font.ColorIndex セルの背景色 sheet.Range("A1").Interior.ColorIndex

caster01
質問者

補足

皆さん、早々に回答を頂きありがとうございます。 下記のようにしましたが、TextBox1の背景色が変わらず「指定されたキャストは有効ではありません。」とエラーが表示されてしまいます。 どこか間違いがあるのでしょうか? 'Form1を開くとexcelを取得 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim excel As New Microsoft.Office.Interop.Excel.Application Dim book As Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open("C:\test.xls") Dim sheet As Microsoft.Office.Interop.Excel.Worksheet sheet = CType(book.Worksheets.Item(1), Microsoft.Office.Interop.Excel.Worksheet) 'TextBox1にA1の文字を表示 TextBox1.Text = sheet.Range("A1").Value ここまでは問題なく作動します。 'TextBox1にA1の背景色を表示 TextBox1.BackColor = sheet.Range("A1").Interior.ColorIndex() ここでエラーになってしまいます。

すると、全ての回答が全文表示されます。

関連するQ&A