• ベストアンサー

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

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

  • ppmi
  • お礼率88% (331/372)

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

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

こんにちは。 Access のデータをExcelに、オートメーションオブジェクトか何かで、データを貼り付けるのでしょうか?全体がどうなっているのか、さっぱり見当が付きません。 Goto でセルを選択した後は、どうするのでしょうか?データは? xls.Application.Goto Sheet1.Range("A1") としてもよいけれども、オブジェクトの処理でしたら必要ないのではありませんか? >xls.Application.Activecell.Value = "data" それに、これでは分らないです。 単に、オートメーション・オブジェクトのExcel.Application を、例えば、xlAppの変数に入れたら、後は、ブックを開けて、以下のようにしたら進んでいくはずです。 With xlApp.myBook1.Sheet1   For i = 1 To 100    If .Cells(i, 1).MergeCells Then     '結合セル処理    Else    '通常のセルの処理    End If   Next  End With

ppmi
質問者

お礼

わかりました 方法がいろいろあるんですね

その他の回答 (1)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

こんにちは、多分 データは更新されていると思います R1C1とR1C2のセルを結合させて、 以下を実行すると 結合された。セルに20が表示されます。 Public Sub gg() Dim r As Integer Dim c As Integer '代入1 r = 1 c = 1 Sheet1.Application.Goto "r" & r & "c" & c ActiveCell.Value = 10 '代入2 r = 1 c = 2 Sheet1.Application.Goto "r" & r & "c" & c ActiveCell.Value = 20 End Sub 結合するとR1C1とR1C2は、 同じセルになるみたいです。 つまり、結合されたセルに、10が入った後、 20が入って、結局、結合されたセルは 20になるみたいです。 ちなみに、代入1文だけで、実行すると 結合セルは10の値になります。

ppmi
質問者

お礼

わかりましたありがとうございました

関連するQ&A

  • 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

  • エクセルVBA 現在のセルの4個上のセルの値

    こんにちは、 エクセルマクロの質問です。 イミディエイトウィンドウにて 現在のセルの4個上の値を表示しようと以下の文を入力したところエラーになりました。 ?cells(activecell.row-4,activecell.colum).value で 「実行時エラー 438 オブジェクトはこのプロパティまたまメソッドをサポートしてません。」 なぜでしょう? ?activecell.Row-4  ?activecell.colum はそれぞれ 正しく表示されます。

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

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

  • エクセル VBA セルのデータを見に行ったのですが・・・

    いつも皆様には大変お世話になっております。 エクセルVBAなのですが・・・ sa = ActiveCell.Row tu = ActiveCell.Column z = Cells(sa + 18, tu + 3).Text MsgBox z If z = "" Then sa = ActiveCell.Row tu = ActiveCell.Column Cells(sa + 18, tu + 3) = a Else sa = ActiveCell.Row tu = ActiveCell.Column Cells(sa + 32, tu + 3).End(xlUp).Offset(1, 0) = a と、入力したのですが z = Cells(sa + 18, tu + 3).Text この zのセルに文字が入っていても MsgBox z  をみても何も入っていないと表示されてしまいます。 何が原因かさっぱりわかりません;; 皆様よろしくお願いいたします

  • 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の中で、保存するようにするには? つまり、「保存しますすか」のメッセージを出さない ようにしたいのです よろしくお願いします

  • ExcelのVBAで、他のExcelファイルのセルのデータを取得

    ExcelのVBAで、他のExcelファイルのセルのデータをファイルを実際に開かずに取得する方法はありますか? Workboks.openを使わずに、具体的にどうすればいいのでしょう? (例)  AAA.xls のセル"C5"に BBB.xls のセル"B3"のデータを入力したい場合。 (AAA.xlsにマクロを起動するボタンがある) ただし、BBB.xlsの最初の3行は空白です。

  • EXCEL 2007 VBAによる時系列データの更新について

    EXCEL 2007 VBAによる時系列データの更新について 当方初心者です。意外と簡単に解決できるものかは分かりませんが質問させて頂きます。 どなたかご教授頂ければと思います。 "A.xls"の"Sheet1"に 2010/10/4 6:00   100   101   100   101 2010/10/5 6:00   102   103   101   102 2010/10/6 6:00   103   104   100   103 2010/10/7 6:00   103   105   100   102 2010/10/8 6:00   103   105   100   102 2010/10/11 6:00   102   107   100   102 2010/10/12 6:00   102   106   100   103 というように毎日蓄積されたデータを1行ごとに保存してあります。 そして"B.xls"の"Sheet1"には 2010/10/8 6:00   103   105   100   102 2010/10/11 6:00   102   107   100   102 2010/10/12 6:00   102   106   100   103 2010/10/13 6:00   101   104   100   102 2010/10/14 6:00   100   102   100   100 2010/10/15 6:00   101   103   100   100 のように最新のデータが保存されてあり、このデータを蓄積してある データ("A.xls"の"Sheet1")にVBAによってコピーしたいのです。 ただしこの場合、既に保存してある期間のデータよりも以降 (上記例では両データ共にA列に日付データが入力されてあり、 2010/10/13 6:00以降)のデータを"A.xls"の"Sheet1"の 2010/10/12 6:00   102   106   100   103 の次の行からコピーしていきたいのですが、どのような方法で 可能なのでしょうか? まだ初心者ですがどなたか教えていただければと存じます。 宜しくお願い申し上げます。

  • エクセル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の次のブックを開いてセルの中身をコピーしたいのです。 変数の使い方がよくわからないのですが、教えていただけますでしょうか。 よろしくお願いいたします。

  • EXCEL VBA 空欄セルがあると左端をセレクトしてくれません

    EXCEL VBAで表の中のあるセルをクリックし userformのボタンを押せばその行の左端のセルに移動するように ActiveCell.End(xlToLeft).Activate と記述しました。 アクティブセルから左端まですべてのセルに何らかの データが入っていると左端のセルをアクティブにするのですが、途中1つでも空白セルがあると 左端のセルがアクティブになりません どうしたらいいのでしょうか よろしくお願いします

  • エクセル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 というコードです どなたか、わかる方教えてください。

専門家に質問してみよう