• ベストアンサー

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 ----------------------------------------- どうすれば、中央揃えにできますでしょうか? よろしくおねがいします。

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

  • ベストアンサー
noname#219128
noname#219128
回答No.2

xlHAlignCenterは定義されていませんよ。 値は-4108なので Const xlHAlignCenter = -4108 とでも定義してみてください。

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/owcvba11/html/ochowConstants.asp
olive_surf
質問者

お礼

> Const xlHAlignCenter = -4108 定義したら、動作確認できました。 ありがとうございました。

その他の回答 (1)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

> objSheet.range("a1").HorizontalAlignment = 『xlHAlignCenter』 ・・・先月の質問と、同じ全く同じ原因では? (http://okwave.jp/qa3613978.html) で、対策も同じ・・・

olive_surf
質問者

お礼

ご指摘ありがとうございます。 どうも「定義する」という頭が足りないようです。

関連するQ&A

  • テキストファイルに一行文字を追加したい

    バッチ処理でテキストファイルの最後に文字列を追加する作業をやりたいのです。 普通の文字列ですと、1)のようにして上手くいきます。 ところが「"」の入った文字列を一行加えようと2)のようにすると、エラーになってしまいます。どうしたら前に進めるでしょうか? --------- 1)上手くいくケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行追加しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing --------- 2)上手くいかないケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行"追加"しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • FileSystemObjectでエクセル作成

    エクセル2003です。 Sub test() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.CreateTextFile("C:\test.xls") .Close End With Set FSO = Nothing End Sub これでエクセルファイルを作成することが出来るのですが サイズが0KBであり、中身を開いて文字を入れて保存しようとすると 「テキスト(タブ区切り)と互換性のない機能が含まれている可能性があります」 と言うメッセージが表示されます。 普通のエクセルファイルとは違うファイルが作成されてしまってるのでしょうか? CSVファイルではなく普通のエクセルファイルをFileSystemObjectで作成する方法をご教授ください。

  • 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に貼り付けた画像の位置を変更する記述を教えてください。 よろしくお願いします。

  • ファイルシステムオブジェクトのメソッドについて

    こんにちは、皆さん。 以下のプログラムでコピーしようとしたら、 オブジェクトがメソッド、プロパティをサポートしてないという メッセージが表示されてしまいました。 Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\aaa.txt", "c:\temp\" Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFile("c:\aaa.txt") fso.Copy "c:\temp\" こういった場合、どんなメソッドがあるか確認するには どうしたらよいでしょうか? また、ファイルをコピーするにはどうしたらよいでしょうか? よろしくお願いします。

  • VBSファイル名に特定文字がある場合

    VBSで現在下記のようなコードを組んでいます。 動作としてはコードが組んであるVBSファイルにエクセルシートをドラック&ドロップすると、ブックのパスが外れてファイル名の先頭に シート内のセルE5の文字がつくようになっています。 やりたいのはその後の処理で たとえば、ブックの名前が先頭から#101-1ならAのフォルダへ移動 #101-2ならBのフォルダへ移動という感じのことがしたいです。 つまりファイル名に-1や-2といった文字が先頭から数えて5番のところにあれば その条件に合わせてファイルを指定のフォルダへ移動させたいということです。 正式には-が先頭から5文字目で数字が先頭から6番になります。 どのようにすればよいか教えてください。 Option Explicit 'Excel 2013 Later Japenese Version Available 'REF: 'REF: '''///---定数の設定Set Enumuragion---///''' Const PWD="aaaaa" Const msoLanguageIDInstall = 1 '''///---変数の宣言---///''' Dim objArgs, I , strFile Dim objFile, objFolder,objPath,strScr Dim xlApp,Wb Dim objWShell : Set objWShell = Createobject("WScript.Shell") Dim FSO : Set FSO = Createobject("Scripting.FileSystemObject") '''///---ファイル処理開始 Start Document File Conversion---///''' Set objArgs = Wscript.Arguments For I = 0 to objArgs.Count-1 set objFile = FSO.GetFile(cstr(objArgs(I))) If Lcase(Left(FSO.GetExtensionName(objFile.Path) ,4) )="xlsx" Then Set xlApp =CreateObject("Excel.Application") If xlApp.Version < 14 Then xlApp.Quit: Set xlApp = Nothing:wscript.Quit xlApp.DisplayAlerts=False xlApp.Visible = False set wb=xlapp.WorkBooks.Open(objFile.Path,0,false,,PWd,,True,,false,false,,true,true) if wb.HasPassword=true then wb.Saveas objFile.Path,,"","",False else wb.Saveas objFile.Path,,Pwd,"",False End if Dim n n = wb.Worksheets(1).Range("E5").Value & "_" & wb.Name wb.close FSO.GetFile(objFile.Path).Name = n set wb=nothing End If Next xlApp.DisplayAlerts=True xlApp.Quit set xlApp = Nothing

  • VBSのFor文

    VBSのドキュメントをダウンロードし、その中にFor文のサンプルがあったんですが、この構文の"f1"はどういった役割をしているのでしょうか?教えてください。 Dim fso, f, fc, f1,s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder("c:\work") Set fc = f.files For Each f1 in fc s = f1.name Next

  • 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

  • ドライブのシリアルナンバーを調べたい

    お世話になります。 ドライブのシリアルナンバーを取得するvbaコードを見つけたのですが、 これをVisualBasic2008EEで表現するとどうなるのでしょうか。 お解かりの方おりましたらよろしくお願い致します。 Dim FSO, DriveObject Set FSO = CreateObject("Scripting.FileSystemObject") ''Cドライブのシリアルナンバーを表示します MsgBox FSO.GetDrive("C").SerialNumber Set FSO = Nothing

  • 同名でもエラーにならない理由

    Sub バックアップ作成() Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFile CurrentProject.FullName, "C:\test.mdb" Set FSO = Nothing End Sub このコードを実行すると、同じファイルがあってもエラーになりません。 Sub DiskOprate4() MkDir "C:\バックアップ" End Sub なら同名のフォルダがあればエラーになります。 ファイルはエラーにならないがフォルダならエラーになるのでしょうか? それともFSOというのを使うとエラーにならないのですか? よろしくお願いします。