• 締切済み

VB2005で、Excel 2010に罫線を描く。

VB2005で、Excel 2010に罫線を描く。 ※ VB2005で技術計算をし、[Excel 2010] に資料を作成しています。 ※ [Windows XP]+[Excel 2005] では正常に作動するコードを    [Windows 7]+[Excel 2010] 上のVB2005に移植すると、罫線の    描画部分でエラー表示が出ます。 ※ [Excel 2010] の Open コードは下記です。 ※ ファイルを開くコード    Me.Hide() xlApp = CreateObject("Excel.Application") xlBook = xlApp.workbooks.add xlSheet = xlBook.sheets("sheet1") xlBook.application.Visible = True Me.Show() MsgBox("Excelファイルは開きましたか", 0, "確認") Excel転記ToolStripMenuItem.Enabled = True     教えて下さい。 {質問追記}   ※各セルへのテキスト記入、セル幅・高さ・フォント変更等は出来ます。 ※ 何かの認識コードが不足しているのでしょうか。罫線だけが引けません       With xlApp.Workbooks(1).Worksheets("Sheet1") '--------------------------------------------------------------- .xlRange(.Cells(i1, j1), .Cells(i2, j2)).Borders.LineStyle = xlApp.XlLineStyle.xlContinuous '-------------------------------------------------------------------------- End With    ※エラー内容1(上コードに対し)       「公開メンバ 'xlRange' は型 'Worksheet' に見つかりませんでした。」   ※エラー内容2 Excelのマクロを引用して、コードを書くと、デバックでエラーになります。 Selection.Borders(xlDiagonalDown).LinStyle = xlNone は      名前 "Selection"は宣言されていません。      名前 "xlDiagonalDown"は宣言されていません。      名前 "xlNone"は宣言されていません。

みんなの回答

回答No.1

> .xlRange(.Cells(i1, j1), .Cells(i2, j2)).Borders.LineStyle = xlApp.XlLineStyle.xlContinuous xlRangeじゃなくてRangeでは?

関連するQ&A

  • VB2005で、Excel 2010に罫線を描く。

    ※ VB2005で技術計算をし、[Excel 2010] に資料を作成しています。 ※ [Windows XP]+[Excel 2005] では正常に作動するコードを    [Windows 7]+[Excel 2010] 上のVB2005に移植すると、罫線の    描画部分でエラー表示が出ます。 ※ [Excel 2010] の Open コードは下記です。 ※ ファイルを開くコード    Me.Hide() xlApp = CreateObject("Excel.Application") xlBook = xlApp.workbooks.add xlSheet = xlBook.sheets("sheet1") xlBook.application.Visible = True Me.Show() MsgBox("Excelファイルは開きましたか", 0, "確認") Excel転記ToolStripMenuItem.Enabled = True ※ 何かの認識コードが不足しているのでしょうか。    教えて下さい。  

  • AccessVBAでExcelを起動し、罫線を引きたいのですが、Exc

    AccessVBAでExcelを起動し、罫線を引きたいのですが、ExcelVBAの罫線を引く関数をAccessVBAで記述するとエラーになります。どういう記述をすればよいのでしょうか? (例)   以下の様にすると、例えば「xlNone」は宣言されていない等のエラーになります。   (ちなみに、Excelの起動と値の入力はできています) Range("A4:C6").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = xlAutomatic End With

  • VB2005でのEXCEL操作

    いつもお世話になってます。 VBレスキュー花ちゃんを参考にやってみたのですがうまくいかないのでアドバイス頂きたいと思います。 下記のコードにてセル内にテキストを書き、罫線をつけたあと 文字を中央揃えにする場合は、どのようにすればいいのでしょうか。 エクセルにてマクロ記録を行い、開いたところ Range("B1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With と、ありましたがHorizontalAlignment = xlCenterを xlBook.Worksheets(1).Range("A1")以降に貼り付けても xlCenterが宣言されていない、とエラーが出てしまいました。 又、空白セルであるE1,F1,G1及びE2,F2,G2、E3,F3,G3は"選択セルの中央揃え"とする場合 HorizontalAlignment = xlCenterAcrossSelection はどのように転載すればいいのでしょうか。 EXCELとの連携について全然理解できていないことが原因なのですが VB6を対象としているサイトでもVB2005にそのまま参考となるのでしょうか。 EXCEL操作については基礎の部分から学びたいので、もし私のように 入門者向けに解説を行っているサイトがありましたら教えてください。 Sub excel2() Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing Dim xlRange As Excel.Range = Nothing Dim xlBorders As Excel.Borders = Nothing Dim xlBorder As Excel.Border = Nothing Try ' 必要な変数は Try の中でインスタンス化する xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("C:\test.xls") xlSheets = xlBook.Worksheets xlApp.Visible = True xlBook.Worksheets(1).Range("A1") = "No." xlBook.Worksheets(1).Range("B1") = "HOGEHOGE" xlBook.Worksheets(1).Range("B2") = "番号" xlBook.Worksheets(1).Range("C1") = "honyarara" xlBook.Worksheets(1).Range("C2") = "番号" xlBook.Worksheets(1).Range("D1") = "SAMPLE" xlBook.Worksheets(1).Range("E4") = "X" xlBook.Worksheets(1).Range("F4") = "Y" xlBook.Worksheets(1).Range("G4") = "Z" '外枠罫線のコードは省略しました xlApp.Quit()

  • VB2005でのEXCEL制御について

    いつもお世話になってます。 私はVB入門者です。 VBからシートを選択して値を入れることは出来たのですが 範囲選択→格子罫線をひく、といったような操作について 調べたところ、マクロをつくりコピーアンドペーストでスムーズに いくということがわかったので、試したところうまくいきませんでした。 又、質問ナンバー QNo.3575919 に [Visual Basic2005でExcelに罫線を描く]とあり 「CreateObject("Excel.Application")」はソースに入っているか という部分がポイントのようなので、少しいじってはみたのですが うまくかけませんでした。 と、いうよりも理解できませんでした。 下記のコードでは選択範囲を指定する部分まで成功したものです。 アドバイスよろしくお願いします。 Sub excel_app() Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("C:\hoge.xls") xlSheets = xlBook.Worksheets xlBook.Worksheets(1).Range("A31:Y55").Select() xlBook.Worksheets(1).Range.Borders. ←これ以降がわかりません。

  • VBAで「一度で全ての罫線をなくす」コードを書くときは

    With Selection .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone .Borders(xlEdgeLeft).LineStyle = xlNone .Borders(xlEdgeTop).LineStyle = xlNone .Borders(xlEdgeBottom).LineStyle = xlNone .Borders(xlEdgeRight).LineStyle = xlNone .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone End With これしかないですか? 「一度で全ての罫線をなくす」 みたいなのがあったら教えてください。よろしくお願いします。

  • 表に罫線を最終列まで引きたい

    windows7 とExcel2007でマクロ作成中の初心者です。 最初に、D2:E34を選んで罫線をひき、列を2列移動して、また罫線を引きます。 これをデータのある最終列まで繰り返したいのですが、うまくいきません。 どうしたらよろしいでしょうか。 Sub 勤怠に罫線() Dim n As Integer For n = 1 To 5 勤怠に罫線 Selection.Offset(0, 2).Select 勤怠に罫線 Next n End Sub 以下はマクロの自動記録でコードを書きました。 Sub 勤怠に罫線() Range("D2:E34").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMedium End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("D2:E34").Select End Sub

  • VB6.0上でExcelオブジェクトを生成

    VB6.0上でExcelオブジェクトの生成についてです。 その1 Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) と その2 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) と、どちらが良いのでしょうか? 開発環境は  Windows2000  VB 6.0  Excel 2003 です。

  • VB.NETからEXCELの起動が、うまくいかない

    3回目の同じ質問になってしまうのですがよろしくお願いいたします。 下記のようなソースでEXCELファイルを作成し、その後ファイルを開くという処理をしています。 Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlBook As Excel.Workbook = xlBooks.Add Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = xlSheets.Item(1) Dim xlRange As Excel.Range Dim xlCells As Excel.Range = xlSheet.Cells xlRange = xlCells(1, 10) xlRange.Value = "--" xlRange = xlCells(1, 5) xlCells.EntireColumn.AutoFit() xlBook.SaveAs(sPath & "\" & sFileName, Excel.XlFileFormat.xlWorkbookNormal) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlCells) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlRange) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlSheet) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlSheets) xlCells = Nothing xlRange = Nothing xlSheet = Nothing xlSheets = Nothing xlBook.Close() System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlBook) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlBooks) xlBook = Nothing xlBooks = Nothing xlApp.Quit() System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp) xlApp = Nothing GC.Collect() System.Diagnostics.Process.Start(sPath & "\" & sFileName) ある特定のPCでのみEXCELのメニューバーとステータスバーのみしか表示されない状態です。 起動部分(Process.Start)をコメントアウトして確認したところ GC.COLLECTでEXCELが終了することなく、アプリの終了時にEXCELが終了する 状態にあります。 これはオブジェクトの開放がうまくいっていないのでしょうか? よろしくお願いいたします。

  • VB2008 エクセル出力

    VB2008 エクセル出力 教えていただけると助かります VB6.0使用時にエクセル出力をするために下記のようなプログラムで出力していました ※「Microsoft Excel 9.0 Object Library」を参照 Dim xlApp As EXCEL.Application Dim xlBook As EXCEL.Workbook Dim xlsheet As EXCEL.Worksheet Dim File As String File = App.Path + "\EXCEL\" + "フォーム.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(File) Set xlsheet = xlBook.Worksheets("テスト") xlsheet.Range("A1") = "テスト" 'フォルダ作成 If Dir("D:\", vbDirectory) = "" Then Call Mkdirs("D:\テスト") 'Worksheetを名前をつけて保存します。 xlApp.DisplayAlerts = False xlsheet.SaveAs "D:\テスト\テスト.xls" xlApp.Quit Set xlApp = Nothing Set xlBook = Nothing Set xlsheet = Nothing VB2008の場合だとどのように書けば同じように動きますか ※色々試してみましたがダメでした 「Microsoft Excel 12.0 Object Library」を参照しています

  • VB2005でエクセルの機能を使うには

    VB2005でエクセルに数値を貼り付けた後自動的に エクセルの機能を使ってA列で並び替えをしたいのですが可能でしょうか。 今のソース s1()の配列に数値がはいっている。 exp s1(1)="1.0,2.0,3.0,4.0......" Dim xlApp As New Excel.Application Dim xlBooks As Excel.Workbooks = xlApp.Workbooks Dim xlFilePath As String = Application.StartupPath & "\aaa.xls" Dim xlBook As Excel.Workbook = xlBooks.Open(xlFilePath) Dim xlSheets As Excel.Sheets = xlBook.Worksheets Dim xlSheet As Excel.Worksheet = xlSheets.Item(1) ':::::::::::::::::::::::::::::::::::::::::::::::sheet1 '-----貼り付け開始 Dim xlRange As Excel.Range Dim xlCells As Excel.Range Dim xlRange1 As Excel.Range xlCells = xlSheet.Cells Dim j Dim Col As String For i = 1 To irec - 1 temp = Split(s1(i), ",") For j = 0 To 12 xlRange1 = xlCells(3 + i, 1 + j) Col = xlRange1.Address(False, False) xlRange = xlSheet.Range(Col) xlRange.Value = temp(j) Next j Next i ここで並び替えしたいのですが。

専門家に質問してみよう