• ベストアンサー

VBでエクセルのセルのバックカラーをつけるには?

お世話になります 表題のように、VBを実行して、エケセルのあるセルに 色(赤)をつけたいのですが どうしたらいいか、アプローチを教えてください ちなみに下記のようなVBは実行して からくりが理解でしました ------------------------------------------ Function Excel_SelectSel_Export1() Dim Xls As Object Set Xls = GetObject("c:\vba\実践VBA.xls") Xls.Application.Windows(1).Visible = True 'ワークシートをアクティブにする Xls.Application.worksheets("sheet1").Activate 'エクスポート先セルをRow(行)とColumn(列)の形式で指定する Xls.Application.Goto "r3c2" 'セルに値をエクスポートする Xls.Application.activecell.Value = "★彡☆彡" Xls.Application.Goto "r4c2" Xls.Application.activecell.Value = "☆彡★彡" Xls.Application.Quit 'Excelを閉じる Set Xls = Nothing Debug.Print "Completed!!" End Function

  • maaaa
  • お礼率91% (330/362)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

Xls.Application.activecell.Interior.ColorIndex = 3 で良いと思います。 EXCELを開いて「ツール」→「マクロ」→「新しいマクロの記録」を選択して背景色をつける操作を行えば、マクロが作成されます。 VBAとVBで違いはありますが、そのマクロを参考にすれば大体解決するのではないでしょうか。お試しください

maaaa
質問者

お礼

ありがとうございます 助かりました なんと、お礼をいったら言いか わからないくらいです

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 ここは、MS Office のカテゴリですから、VBの質問でしたら、カテゴリ違いだとは思います。 前と同じような質問をされて、内容は重複しているとは思いますが、今回は、実際に、VB6 で通してみました。本に載っているとかおっしゃっていますが、ブックのオブジェクトを取って、そこから、Application を引き出すというのは、私は見たことがないコードです。 Private Sub Command1_Click()  Call Excel_SelectSel_Export1 End Sub Private Sub Excel_SelectSel_Export1() '今回は、あらかじめ参照参照設定しました。 Dim XlApp As Excel.Application Dim Xls As Excel.Workbook Dim Xlsh As Excel.Worksheet On Error GoTo Quit Set XlApp = New Excel.Application 'ファイル名 Set Xls = GetObject("c:\vba\実践VBA.xls") Set Xlsh = Xls.Worksheets("Sheet1")  Xls.Windows(1).Visible = True  XlApp.Goto Xlsh.Range("B3")  Xlsh.Range("B3").Value = "★彡☆彡"  Xlsh.Range("B4").Value = "☆彡★彡"  Xlsh.Range("B3:B4").Interior.ColorIndex = 3  Xls.Save   Xls.Application.Quit Quit: Set Xlsh = Nothing Set Xls = Nothing Set XlApp = Nothing If Err() = 0 Then  Debug.Print "Completed!!" End If End Sub

maaaa
質問者

お礼

回答ありがつございました 試してみます

関連するQ&A

  • VBでExcelファイルに書き込んで、、

    下記は本であった例題です↓。 'エクスポート先セルをRow(行)とColumn(列)の形式で指定する Xls.Application.Goto "r2c3" 'セルに値をエクスポートする Xls.Application.activecell.Value = "★彡☆彡" Xls.Application.Quit 'Excelを閉じる Set Xls = Nothing Debug.Print "Completed!!" End Function 質問ですが、 このVBを実行した後に、 「更新した内容を保存しますか」 と聞いてきます そこで、VBの中で、保存するようにするには? つまり、「保存しますすか」のメッセージを出さない ようにしたいのです よろしくお願いします

  • VBAでエクセルのデータ更新 セルを合併したところへ

    お世話になります VBA(ACCESSの)でエクセルに更新したいのですが 普通のセルには、うまくいくのですが 合併したセルに対して更新できません この場合何か方法がありますか、 何か手がかりだけでも、アドバイスいただけたら と、思います ちなみに、codingは 一行目のRow Columで、行列を指定して"data"と いうデータを更新するところ xls.Application.Goto "r" & x & "c" & y xls.Application.Activecell.Value = "data"

  • ACCESSのVBから、エクセルファイルのセルを更新して、エラーがでます

    エクセルファイルによってはいろいろな設定をしています 例えば、書き込み禁止、など これらの類の理由で、エラーがでます 今回↓のエラー ------------------------------------------------------------ このブックには、ほかのデータソースのリンクが含まれています。 ーすべてのリンク情報を更新するには「はい」をクリックしてください ー既存の情報を保持するには、「いいえ」をクリックしてください ------------------------------------------------------------- がでます そこで質問ですが これらのメッセージを無視して 強制的に、セルの内容を書き込めないでしょうか なお、セルを更新するVBは下記のようです Xls3.Application.Goto "r" & myRow & "c" & myCollumn Xls3.Application.activecell.Value = myTxt 繰り返すと エラーメッセージを無視して 更新したいのですが よろしくお願いします

  • excelのデータをvbにとりこむ

    excelのあるセルのデータを取り込みたいのですが、 どうすればよいでしょうか? C:\123.xlsというファイルのsheet1の (2,4)というセルにある実数型のデータを 出力するという、意図です。 Private Sub Setting_Click() Dim xls As Object Dim xlsFilename As String Dim xlsSheetname As String xlsFilename = "C:\123.xls" xlsSheetname = "Sheet1" Set xls = CreateObject("Excel.Application") xls.Application.Visible = False xls.Application.Workbooks.Open xlsFilename Dim r1 As Double r1 = xls.Application.Workbooks.cells(2, 4).Value Print r1 end sub

  • エクセルVBA セルを参照した文字検索でシートをアクティブにする

    VBA初心者で困っています。 ブックAのシート1の“A1”の値が、同一ブック内の違うシートにあるかどうか検索し、あればそのセルをアクティブにして黄色に色づけ、なければメッセージを返すという処理をVBAで行いたいです。 似たような質問があってそれを参考にしてみましたが どうも上手く動いてくれません。 参考にさせていただいたのは   Set r = Workbooks("ブックB.xls").Sheets("シート1").Columns("A") _     .Find(What:=Workbooks("ブックA.xls").Sheets("シート1").Range("A1").Value, _        LookIn:=xlValues, _        LookAt:=xlWhole, _        SearchOrder:=xlByColumns, _        SearchDirection:=xlNext, _        MatchCase:=True)   If r Is Nothing Then     MsgBox "no data"   Else     Application.Goto r     Set r = Nothing   End If End Sub というコードです どなたか、わかる方教えてください。

  • VBからEXCELを保存

    VBからEXCELに保存したいのですが、前準備としてEXCELのsheet2で保存します。VBを実行したときにExcelのsheet1に保存したいのですが、どうすればいいかわかりません、おしえてください。多分、保存するときにSheet2を対象にしていると思うので、sheet1を対象にしたいのですが・・・ /****************** VBを実行したときの処理 ********************/ 'アプリケーションの参照 Set xlApp = CreateObject("Excel.Application") 'ブックの参照 Set xlBook = xlApp.Workbooks.Open("C:\テスト\テスト.Xls") 'シートの参照 Set xlSheet = xlBook.Worksheets("Sheet1")

  • VB6にてエクセルのセルに貼り付けで・・・

    お願いします。VB6にてエクセルの任意のセルへデータを貼り付けたいのですが、そのエクセルにauto_openが含まれていてフォームを開くようになっています。 Option Explicit Dim objExcelApp As Workbook ---------------------------- strExcelFile = "C:\A.xls" strExcelSheet = "Sheet1" objExcelApp.ActiveSheet.Cells(1, 1).Value = "A" ではフォームが開いて更新ができません。エクセルを開かずに値をセルへ代入できないものでしょうか? どうかお願いします。

  • EXCELのセルの値を表示する

    VB6.0を使っています。 エクセルのC5のセルに50という値が入っています。 この値をVBのメッセージボックスで見たいのですが 実行して見てみると 「50」ではなく何故か「0」と表示されてしまいます。 どうしてでしょうか? その部分のコードは下です。 Dim Wb As Excel.Workbook Dim Ws As Excel.Worksheet Dim Ea As Excel.Application Dim atai As Integer Set Wb = GetObject("C:\test\test.xls") Set Ea = Wb.Application Set Ws = Wb.Worksheets("Sheet1") atai = Ws.Cells(3, 5) MsgBox (atai)

  • エクセルVBAで、複数のブックからデータベースを作りたい

    こんにちは。VBAをはじめたばかりの者です。 変数の使い方で教えていただきたいことがあります。 Dim myFLName As String myFLName = ThisWorkbook.Path & "\001.xls" Workbooks.Open Filename:=myFLName, ReadOnly:=True Workbooks("dbase.xls").Activate Range("A2").Select ActiveCell.Value = 1 ActiveCell.Offset(, 1).Select ActiveCell.Value = Workbooks("001.xls").Worksheets(1).Range("R3") ActiveCell.Offset(, 1).Select ActiveCell.Value = Workbooks("001.xls").Worksheets(1).Range("C2") ActiveCell.Offset(, 1).Select ActiveCell.Value = Workbooks("001.xls").Worksheets(1).Range("R2") ActiveCell.Offset(1, -3).Select 001.xls~(連番でない)200.xlsくらいまでのファイルがあり、 同じフォルダにdbase.xlsを作って1ブックから1レコードになるようにしたいと 思います。 こんな感じで1行目はできたのですが、2行目の1列目に「2」を入れ、 2列目からは001.xlsの次のブックを開いてセルの中身をコピーしたいのです。 変数の使い方がよくわからないのですが、教えていただけますでしょうか。 よろしくお願いいたします。

  • エクセル VB を使ってシートをまたいだセルへの自動記入を教えてください

    エクセルとマクロ(VB)を使い、こづかい帳や家計簿の様な物を想定して、 「前月シート」の「今月残高」が「翌月シート」の「先月残高」に 自動で記入する方法を教えてください。 現在Sheet1のセルには      A    B      C      D 1 2008年12月 2        12   前月残高    99999 3           収入    5555 4           支出     7777 5           今月残高   97777 ずれるので書き直しますと A1:2008年12月(=Date(2008,B2,1) B2:12 C2:"前月残高 " C3:"収入 " C4:"支出" C5:"今月残高" D2:99999 D3:5555 D4:7777 D5:9777(=D2+D3-D4) D5は式「=D2+D3-D4」、B2は作業セルでA1に入力されている関数 「=DATE(2008,B2,1)」を表示させ、マクロを実行するごとにSheetが一つずつコピー増加され、B2が+1し、それに伴いA1の年月が変わります。 新しく現れたSheetの名前は、A1を参照して(この場合ですと)「12月」となります。 このマクロを実行するごとに「12月」「1月」・・・とシートが増えていきますが、 (先月の)「今月残高」を(翌月の)「前月残高」に記入する方法が分かりません。 VBAは Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/12/9 ユーザー名 : ' ' Sheets("Sheet1").Select Sheets("Sheet1").Copy Before:=Sheets(2) Sheets("Sheet1 (2)").Select Sheets("Sheet1 (2)").Name = Format(Range("A1").Value, "mm") & "月" Sheets("Sheet1").Select Range("B2").Value = Range("B2").Value + 1 Range("D2:D4").Select Selection.ClearContents Sheets("sheet1").Select Range("d2").Select ActiveCell.FormulaR1C1 = "='12月'!R[3]C" End Sub 最後の行の 「"='12月'!R[3]C"」をマクロを実行するごとに「 "='1月'!R[3]C"」 「 "='2月'!R[3]C"」・・・・・・・ とする方法は無いでしょうか。よろしくお願いいたします。

専門家に質問してみよう