VBSでエクセルのセルプロパティを設定できますか

このQ&Aのポイント
  • VBSを使って、テキストファイルをエクセルで開く際にセルのプロパティを設定できる方法を知りたい。
  • エクセルのセルをテキストとして扱うためのVBSの方法について知りたい。
  • VBSを使用してエクセルのマクロを呼び出す方法について教えてください。
回答を見る
  • ベストアンサー

VBSでエクセルのセルプロパティを設定できますか

VBS初心者です。初歩的な質問ですがお助け下さい。 VBSを使って、テキストファイルをエクセルで開こうと思っています。しかし、そのままテキストファイルを開いてしまうとエクセル側で自動的にセルのプロパティが設定されてしまいます。頭に「0」のつく数字列などは「文字」として扱いたいため、テキスト流し込みの際、セルのプロパティが設定できないものか悩んでいます。 以下、3つの方法で検討してみたのですが、知識が足りなくて、どれも答えにたどり着けません。 1)テキストファイルを開く際の「open」メソッドの引数で、「文字として扱う」ためのスイッチはあるのでしょうか。 2)エクセルのセルを設定できるメソッドはあるのでしょうか。 3)エクセルのマクロを呼び出す方法はあるでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Dドライブのtest.txtを読み込んで、新規Excelファイルに書き出してます。 Dim xlApp, xlWB, FSO Dim buf , tmp , v , i Set FSO = CreateObject("Scripting.FileSystemObject") With FSO.OpenTextFile("D:\test.txt" , 1)      tmp = .ReadAll      .Close End With Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True   Set xlWB = xlApp.Workbooks.Add buf = Split(tmp, vbCrLf) For i = 0 To Ubound(buf,1)     If Len(buf(i)) > 0 Then        v = Split(buf(i) , ",")        With xlWB.Worksheets("Sheet1").Range("A" & i + 1 ).Resize(1,Ubound(v)+1)             .NumberFormatLocal = "@"             .Value = v        End With     End If Next Set FSO = Nothing Excelファイルの保存等については省略してます。 一例と言う事にして下さい。

uchan1973
質問者

お礼

早々の回答ありがとうございました。 「.NumberFormatLocal = "@"」で指定するのですね。 ここまで教えていただければ、自力でその他のフォーマットについても調べられそうです。 大変ありがとうございました。

関連するQ&A

  • VBSでエクセルマクロの実行中

    VBSでエクセルを起動しマクロを実行ここまでは上手くいったのですが マクロはファイルを開いたエクセルにペーストするものですが ファイルを移すときにこのファイルで良いですかと聞いてきます いつもENTで実行しているのですが ENT key を押すか 開く(o)をクリックこれをVBSに組み入れたいのですが 出来るでしょうか?

  • VBSとエクセルVBAの連携

    一定の処理を自動化したいと考えております 以下が現在の構成 main.vbs       メインの処理を実行 Master.xls (Macro1) マクロを記述してあるエクセル A.xls マクロを実行したいエクセル 現状はmain.vbsの処理を終了後に手動でアクティブウィンドウをA.xlsにしてMacro1を実行しています。 (エクセルファイルは両方開きっぱなしです) これをmain.vbsの処理の中に組み込み main.vbsの処理終了後に自動的に実行するようにしたいと考えています。 1.既に開いてあるエクセルファイルをアクティブにする処理が分かりません。 2.アクティブなエクセルファイルから別のエクセルファイルのマクロを実行する方法がわかりません。 初心者の質問で理解に苦しむかと思われますがご教授よろしくお願いいたします。

  • EXCELのマクロでテキストを読み込む方法

    EXCELのマクロを使って、テキストファイルから、ある文字列を検索し、コピーしEXCELのシートのセルにペーストするマクロの書き方をご存知の方は、ご教示願います。 例えば、テキストファイル中の「dog」という文字列を検索して、EXCELの決まったセル(A、1)にコピペするというマクロです。 よろしくお願い申し上げます。

  • エクセルマクロのテキストボックスの質問です。テキストボックス内の文字を

    エクセルマクロのテキストボックスの質問です。テキストボックス内の文字を24文字13行で設定します。文字を打つことにより残り行数をカウントできるようなマクロを作成したいと思い次のマクロを設定しましたがエラーがでます。対処方法わかりますか。 UserForm1のマクロは次の通りです。 Private Sub CommandButton1_Click() Me.Hide End Sub Private Sub TextBox1_Change() ato = 13 - TextBox1.linecounut Label1.ForeColor = 0 If ato <= 10 Then Label1.ForeColor = RGB(255, 0, 0) Label1.Caption = "あと " & ato & " 文字入力できます。" End Sub すると1回目は入力可能ですが,次のセルに移動するとこのようなメッセージが出てしまいます。 linecountのプロパティーを取得できません。このコントロールはフォーカスを持つ必要があります。setfoucusメソッドによってこのプロパティーまたhメソッドが参照される前にフォーカスに移動しました

  • バッチファイルファイル→VBS→エクセル マクロを有効にして起動

    Win/XP エクセル2002使用です。 VBSからエクセルのマクロを有効にして立ち上げたいのですが、 上手くいきません。 バッチファイル側  cd /D c:\  C:\***.vbs  exit /B VBS側 'エクセル起動  Set WshShell = CreateObject("WScript.Shell")  WshShell.CurrentDirectory = "C:\***"  WshShell.Run "C:\***\***.xls",3  WScript.Sleep(5000)  WshShell.SendKeys("E") '←マクロを有効にする  WScript.Sleep(5000)  WshShell.SendKeys("U") '←データソースへのリンクを更新 エクセル側(マクロ)  Sub Auto_open()   Application.OnTime TimeValue("13:00:00"), "Action"  End Sub  Sub Action()    ・・・(省略)・・・  End Sub ----------------------------- また、エクセルマクロは、VBSではなく手動で立ち上げますと、 問題なく時間になった時(13時)に作動します。 VBSのRunメソッドが、 エクセルマクロの Application.OnTime を待たずに走ってしまうことで、 エクセルマクロが無効になってしまっているのではないか? もしくは、データ更新のための sendkey("U")によって マクロが無効になってしまっているのはないか? と思っています。 恐れ入りますが、 よろしくアドバイスの程お願いします。

  • VBSからのエクセル操作での初期ダイアログへの対応

    VBSからのエクセル操作での初期ダイアログへの対応 VBSでのエクセルの初期ダイアログへの対応について教えてください。 ここでいう「初期ダイアログ」とは以下のことを指しています。 (A)読み取り推奨設定時にでるダイアログ  「…を変更し、保存する必要がなければ、読み取り専用で…」 (B)マクロを含むファイルを開くときに出るセキュリティ警告ダイアログ  「マクロにはウイルスが含まれている場合があります。…」 (C)読み取り・書き込みパスワード設定時のパスワード入力ダイアログ ソースとしては、下記に示す簡易な内容です。 このとき、ファイルに何も属性がなければファイルを開いていることを 意識させずにエクセルの内容を取得することが出来ます。 しかし、読み取り推奨にされているときや、マクロが含まれるときには、 ダイアログが表示されてしまい、スマートに値を取得することが出来ません。 これを何か引数を与えるなどして、ダイアログを表示させないもしくは 一瞬ダイアログが表示されても、スクリプトに閉じさせるように したいと思っています。 もし方法があるならそれを教えてください。 「方法がない」ということが分かっている場合は、 その旨を教えていただきたいです。 よろしくお願いします。 ■α Set excel = WScript.GetObject(filePath) MsgBox excel.Sheets(sheetName).Cells(2, 2) ■β Set excel = WScript.CreateObject("Excel.Application") excel.Workbooks.Open filePath, , true excel.Visible = false Set sheet = excel.Sheets(sheetName) MsgBox sheet.Cells(2, 2).value excel.Workbooks.Close excel.Quit

  • ASPからEXCELファイルの設定を変更する方法を 教えて下さい。

    ASPファイルで表示したデータをEXCELファイルに はきだす、プログラムを作成しました。 はきだす、文字列が長いと、セル内に「####」と いう文字が表示されます。 この現象を回避する ために、EXCELファイルを作成し、データをはきだ す時に、セルのプロパティ(幅)を設定したいです。 このような事は、可能なのでしょうか?また、可能ならば 方法をご教授願います。 よろしくお願いします。

  • VBSでエクセルにマクロを登録する方法+α

    現在仕事の一環として、 エクセルでリストの作成をするプログラムをvbsで書いているのですが、 以下の2つの記述をどうしたらいいか悩んでいます。 (1)VBSを使ってEXCELにマクロを登録する方法 (2)ボタンの位置毎に変数を代入してその変数に応じた動作をするマクロ (1)については文字通り、マクロ登録の方法が分かりません。 VBEやVBProjectを試してみたのですが、オブジェクトが対応していないようです。 (2)については、例えば 1 A ■ 2 B ■ 3 C ■ 4 D ■ 5 E ■  ※■はボタンです のような2列5行のリストとボタンがあった場合、 Aの横のボタンを押せばメッセージボックスでAと表示され、 Eの横のボタンを押せばEと表示されるようなマクロを記述したいのです。 引数で綺麗に処理できないか考えているのですが、 今のところボタンクリック時のマウスポインタ座標を使うか、 ボタンの数だけマクロを登録するくらいしか方法が思いつきません。 尚、VerはWSH5.6、OSはWindowsXP、Office以外は特にインストールされていない環境での使用が前提となっています。 どうか皆様の知恵をお貸し下さい。 宜しく御願い致します。

  • VBSでエクセル内の行数を取得する方法

    VBS初心者です。よろしくお願い致します。 VBSでエクセル内のデータの行数を取得する方法を教えて下さい。 セル1 セル2 セル3 セル4 123   234   875   ads あい  うえ  458   444 上記がエクセルの内容だとしたら、3行という結果が欲しいのです。 どうぞよろしくお願い致します。

  • vbsでExcelのシートをコピーするには

    vbsでExcelのシートをコピーすることができず、困っています。 雛形のAファイル(Excel)のシートを別のBファイル(Excel)にコピーしたいのですが、 下記コーディングでは、「実行時エラー この変数は宣言されていません。: 'before'」となります。 xlsSheet.Copy before:=xlsBook2.Worksheets("Sheet1") Excelのマクロに記載して、Excelのコマンドボタンから呼び出すなどすれば動くのですが、 ハンディ端末のサーバ側アプリがvbsで、vbsから行いたいのです。 vbsでExcelファイルのシートをコピーすることはできないのでしょうか。 ご存知の方、ご教授いただければ幸いです。

専門家に質問してみよう