Acc→Excel編集 セルのセンタリング

このQ&Aのポイント
  • ACCよりEXCEL編集にて、セルのセンタリングが出来ずに困っています。オートフィットや、シートのヘッダ、フッター編集などはナ難なくできたのですが、以下のロジックで『RangeクラスのHorizontalAlignmentプロパティを設定できません』のエラーが返ってきてしまいます。
  • EXCEL編集にてセルのセンタリングができない問題について困っています。オートフィットやシートのヘッダ、フッター編集はうまくいっているのですが、設定したロジックで『RangeクラスのHorizontalAlignmentプロパティを設定できません』というエラーが出てしまいます。
  • EXCEL編集の中でセルのセンタリングができません。オートフィットやシートのヘッダ、フッター編集は問題なく行えているのですが、以下のロジックで『RangeクラスのHorizontalAlignmentプロパティを設定できません』というエラーが表示されます。
回答を見る
  • ベストアンサー

Acc→Excel編集 セルのセンタリング

ACCよりEXCEL編集にて、セルのセンタリングが出来ずに 困っています・・・ オートフィットや、シートのヘッダ、フッター編集などは ナ難なくできたのですが・・・ 以下のロジックで『RangeクラスのHorizontalAlignmentプロパティを 設定できません』 のエラーが返ってきてしまいます。 宜しくお願いします! '*** EXCEL接続 Dim objEXCEL As Object Set objEXCEL = CreateObject("Excel.Application") *** 編集 *** objEXCEL.Cells(1, 1).Select objEXCEL.Selection.HorizontalAlignment = xlCenter

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

昔やったけど今回できんかった・・ ナンデカナと調べた結果 xlナントカ はExcelの定数なのでそのままは使えないような? ので 案1 Microsoft Excel x.x Object Library に参照設定をして Sub testXL()   Dim objEXCEL As Excel.Application   Dim objBook As Excel.Workbook   Dim objSheet As Excel.Worksheet      Set objEXCEL = CreateObject("Excel.Application")   Set objBook = objEXCEL.Workbooks.Open("g:\_z.xls")   Set objSheet = objBook.Sheets("sheet1")      objSheet.Cells(1, 1).HorizontalAlignment = xlCenter      objBook.Close SaveChanges:=True   Set objSheet = Nothing   Set objBook = Nothing   objEXCEL.Quit: Set objEXCEL = Nothing End Sub とやるか 案2 参照設定はせずに xlCenter の値ををExcelから調べて ?excel.Constants.xlCenter → -4108 直接渡すかではどうでしょう。

bonn1117
質問者

お礼

参照設定既にしている! って思ってましたが してませんでしたぁ><; 他の設定は参照設定なくしてできたので・・・ ということで、参照設定にて解決しました^^ ありがとうございました!!!

関連するQ&A

  • VBでExcelファイルの編集

    VBでExcelファイルを作成しようとしていますが、罫線を引くとき、Rangeで範囲を指定しているんですが矩形でかかれず、一本線だけが書かれてしまいます。 どうしたら四角く矩形で罫線が書かれるか教えてください。 Set objExcel = CreateObject("Excel.Application") 'エクセルオブジェクト作成 objExcel.Visible = False 'エクセルを非表示で objExcel.Workbooks.Add '新規に作る With objExcel.Sheets("Sheet1").Range("a19:k29").Borders(1) .LineStyle = xlContinuous .Weight = 4 .ColorIndex = xlAutomatic End With

  • マクロを使ってexcel2007でテキストボックス内をセンタリングしたい

    以前、excel2000でマクロの児童記録で記録し、それを利用して 下のようなマクロを使っていました (列ボックス1は変数) ActiveSheet.Shapes.AddTextbox(msoTextOrientationVerticalFarEast, 列ボックス1, 205 , 15, 105).Select Selection.Characters.Text = 顧客名 With Selection.Characters.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 8 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .Orientation = xlVertical .AutoSize = False .AddIndent = False End With Selection.ShapeRange.Fill.Visible = False Selection.ShapeRange.Fill.Solid Selection.ShapeRange.Fill.Transparency = 1# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoFalse Selection.ShapeRange.TextFrame.MarginLeft = 0 Selection.ShapeRange.TextFrame.MarginRight = 0 Selection.ShapeRange.TextFrame.MarginTop = 0 Selection.ShapeRange.TextFrame.MarginBottom = 0 これで問題なく動作していたのですが excel2007で動作させると テキストボックス内が水平方向にセンタリングされていません。 excel2007でテキストボックスをかく記録をしてもマクロには何も残らず 困っています。 excel2007でも、センタリングさせる方法を教えて下さい どうかよろしくお願いします

  • Excelオブジェクトの解放

    VBでExcelを編集しています。 下記コードを実行するとExcelがタスクに残ったままになります。 どうしたら解放されるでしょうか。 (処理は少し省略しています) Dim objExcel as Object Dim objExcelBook as Object Dim objExcelSheet as Object Set objExcel = CreateObject("excel.application") Set objExcelBook = objExcel.Workbooks.Open(パス, 0) Set objExcelSheet = objExcelBook .Sheets(シート名) With objExcelSheet.Range(Cells(1,2),Cells(3,2)).Borders(xlEgeBottom) .LineStyle = xlContinuous End With Set objExcelSheet = Nothing Set objExcelBook = Nothing Set objExcel = Nothing

  • EXCELに貼り付けた画像の位置を変更する方法

    ASPからEXCELファイルを作成し、セルに画像を貼り付け、更に貼り付けられた画像の位置を調整したいのですが Dim objExcel fso = CreateObject("Scripting.FileSystemObject") Set objExcel = Server.CreateObject("Excel.Application") Set objExcelBook = objExcel.ActiveWorkbook Set objExcelSheets = objExcelBook.Worksheets If (fso.FileExists(Server.MapPath("【パス付画像のファイル名】"))) Then objExcelSheet.Cells(3, 18).Select objExcelSheet.Pictures.Insert(server.mappath("【パス付画像のファイル名】")).Select End If これで指定のセルに指定の画像を貼り付けることはできましたが、画像の位置を調整するコトができません。 EXCELのマクロからコードを調べたところ Selection.ShapeRange.IncrementLeft 12.75 Selection.ShapeRange.IncrementTop 7.5 という記述が書いてあったのですが、そのままASPで使えそうにはありません。 ASPでEXCELに貼り付けた画像の位置を変更する記述を教えてください。 よろしくお願いします。

  • ASPでExcelファイルを開く場合

    ASPでExcelファイルを開く場合WEBでいろいろ検索すると Set ObjExcel = Server.CreateObject("Excel.Application") ObjExcel.Workbooks.Open"****.xls" で開く方法が記載されていたので ためしているのいですが Set ObjExcel = Server.CreateObject("Excel.Application") でエラーが出てしまいます。 解決する方法はありますでしょうか。 環境:Windows XP,IIS,Office 2003 **************************************************** エラー タイプ Server オブジェクト, ASP 0178 (0x80070005) 許可を確認中に Server.CreateObject の呼び出しに失敗しました。このオブジェクトへのアクセスは拒否されます。 *****************************************************

  • ASPでEXCELを扱うには?

    こんにちは。 ASPでEXCELを起動させたいのですが、 Set objExcel = CreateObject("Excel.Application") ここでエラーが出ます。 ”ActiveX コンポーネントはオブジェクトを作成できません。: 'Excel.Application'” 環境はwindows2000とEXCEL2000です。 最終的には、EXCELの各シートをCSVで保存したいと思っています。 初心者ですがよろしくお願いします。

  • vbs 文字位置を中央に

    vbscriptでエクセルファイルへ出力するスクリプトを作成しています。 エクセルファイルのセルに文字列を入力し、文字を中央揃えにしたいのですが、うまくいきません。 ----------------------------------------- Dim FSO, objExcel, objBook, objSheet Set FSO = CreateObject("Scripting.FileSystemObject") Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set objBook = objExcel.Workbooks.Add Set objSheet = objExcel.Worksheets("Sheet1") objSheet.range("a1") = "test" objSheet.range("a1").HorizontalAlignment = xlHAlignCenter Set FSO = Nothing : objExcel = Nothing : Set objBook = Nothing : Set objSheet = Nothing ----------------------------------------- どうすれば、中央揃えにできますでしょうか? よろしくおねがいします。

  • エクセルマクロで教えてください

    エクセル2003です。 自動マクロで下記のようなマクロを造ったんですが Selection.End(xlDown).Select   Range("A29:D29").Select  ■A29を止まったセルの番号にしたいのです。(A**からD**まで)     With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Range("A30").Select ■A30を止まったセルの番号にしたいのです 以上2箇所の指定を教えていただけますでしょうか。 よろしくお願いいたします。

  • AccessからExcelに罫線付で出力したい

    Access2010使用。 AccessのクエリからExcelにエクスポートした際、罫線などの体裁を整えて出力したいと思っています。 データは下記のコードでなんとか出るようになりましたが、このコードの中に罫線を引くコードを 入れる方法がどうしてもわかりません。 検索してあれこれ試しましたが「オブジェクトがない」や「サポートしてない」などエラーメッセージ が出てしまい、VBAの基礎知識がない私にはどうしてもわかりませんでした。 どうかアドバイスお願いいたします。 (クエリ名は Q_ABC とします) やりたいことは ・データがある行列に格子線を引き、1行目の項目列の下は二重線、外側は太線にしたい。 ・行の高さを数値で指定したい。 です。なお、行数はその都度増えます。 また、できれば 印刷する際の設定で用紙を「A3横」で、常に横1ページに入るように縮小率を設定しておきたい のですが可能でしょうか? どうぞよろしくお願いします。 Private Sub コマンド0_Click() Set xlapp = CreateObject("Excel.application") Dim xlbook As Excel.Workbook Dim xlsheet As Excel.Worksheet Dim rs As New ADODB.Recordset Dim objEXCEL As Object Dim nYLINE As Integer Dim nXLINE As Integer Dim nRCNT As Integer Dim strWORK As String Set xlApp = CreateObject("Excel.Application") Set objEXCEL = CreateObject("Excel.Application") objEXCEL.Visible = True objEXCEL.Workbooks.Add objEXCEL.sheets.Add re.Open "Q_ABC", CurrentProject.Connection, adOpenKeyset, adLockOptimistic '見出しを書き込む objEXCEL.Range("A1") = "ID" objEXCEL.Range("B1") = "氏名" objEXCEL.Range("C1") = "住所"  == 以下T列まで省略 == '項目名をセルの中央に objEXCEL.Range("A1:T1").HoraizontalAlignment = xlHAilignCenterAcrossSelection Dim yLINE As Integer '行カウンター yLINE = 2  'ループ処理 While rs.EOF = False 'accessからデータのセット objEXCEL.Cells(yLINE, "A") = rs.Fields("ID") objEXCEL.Cells(yLINE, "B") = rs.Fields("氏名") objEXCEL.Cells(yLINE, "C") = rs.Fields("住所") == 以下T列まで省略 == rs.MoveNext yLINE = yLINE + 1 Wend 'シートの列幅の自動調整 objEXCEL.Cells.EntireColumn.AutoFit rs.Close Set rs = Nothing End Sub

  • VB6でExcelシートのコピー、貼付け

    VB6でExcelファイルを開いてシートをコピーし、新規ファイルとして保存したいのですが方法がわかりません。 (既存のExcelシートを雛形として新しくBookを作りたいんです) Set objexcel = CreateObject ("Excel.Application") Set objexcel_new = CreateObject("Excel.Application") objexcel.Workbooks.open (App.Path & "\book1.xls") objexcel_new.Workbooks.Add '新規に作る 'シートのコピー objexcel.sheets("Sheet1").Copy objexcel_new.sheets("Sheet1").Select objexcel_new.activesheet.Paste としても、実行前のクリップボードの中身が貼り付けられるだけで、シートがコピーできません。 よろしくお願いします。

専門家に質問してみよう