- ベストアンサー
VB6.0からExcel結合セルへ書出しについて
はじめまして。 [環境] Windows2000 VB6.0 Excel2000 [主な参照設定] Microsoft Excel 9.0 Object Library Microsoft Activex Data Object 2.1 Library Microsoft Office 10.0 Object Library Microsoft Access 9.0 Object Library Microsoft ADO Ext. 2.8 for DDL and Security [処理ルーチン] Access2000からデータを取得→固定FormatのExcelを起動→Excelにデータを書出し [質問] ・VB6.0からExcelにデータを書き出しているのですが、セル(書式設定の動作)について質問させて下さい。 単一のセルに対して、データの書出しは問題ないのですが、結合されているセル(B20:G20)に対して文字を挿入しようとするとうまく反映できませんでした。 で、「セルの書式設定→配置→セルの結合を解除」文字を挿入「セルの書式設定→配置→セルを再度結合」って処理を考えていたのですが、うまく動作しません。 もっと簡単な解決方法があるのでしょうか? ※よろしければ簡単なソースで例て教えて頂けないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
・Range("B20:G20").Cells(1,1).Value = Var ・Range("B20:G20")(1).Value = Var 結合セルの場合は、一番最初のセル、この例の場合はB20セルに対して代入を 行います。Range オブジェクトの Cells プロパティーを使います。 Range("B20:G20").Cells(1,2) なら C20 セルの Range オブジェクトが参照 されます。 Rangeオブジェクト.Cells([RowIndex],[ColumnIndex]).Value = Var
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
結合セルの座標は「左上のセル位置」を指定します。 B20:G20 なら B20 になります。 Range("B20") = "A" または、結合セルに対応したプロパティを使用する。 Range("C20").MergeArea = "B"
お礼
無事解決致しました。 というか私がDDEを使用して値の代入を行っていた為に 起こった不具合だと自己解決致しました。 お騒がせしてすみません。 [旧ソース] intChan1 = DDEInitiate("Excel", "System") ' リンクを設定します。 Shell "" & EXCEL_PATH & " " & EXCEL_NAME & "", 1 If Err Then Exit Sub intChan1 = DDEInitiate("Excel", "System") 'End If strTopics = DDERequest(intChan1, "Selection") strSheetName = Left(strTopics, InStr(1, strTopics, "!") - 1) DDETerminate intChan1 intChan1 = DDEInitiate("Excel", strSheetName) DDEPoke intChan1, "R20C2", "" & strMoj(10) & "" DDETerminateAll ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ [新ソース] Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\DDE\data.xls") Set xlSheet = xlBook.Worksheets(1) xlApp.Visible = True 'Excelを表示 xlSheet.Cells(20, 2).Value = "test" xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
お礼
丁寧な説明でわかりやすかったです。 ありがとう御座いました。