• ベストアンサー

VBスクリプトのコマンドについて

テキストファイルを1行ずつ読み取り、必要な箇所のみを出力するプログラムを作成しています。 VBスクリプトで以下のことをする構文を教えてください。 1、ある1行から、ある文字列とスペースを除く方法    例(名前 abc → 名前を除きたい場合は「abc」を出力したい。) 2、ある1行から、ある文字列以降を抽出する方法   例(名前:abc →:以降をとりたい場合は「abc」を出力したい。) 3、2に加えて次の行も出力したい場合。   例(abc +次の行全部を出力)

  • craftx
  • お礼率48% (388/806)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

丸投げ的な、やってください、的な質問の仕方だ。 (1)WEBでも調べて、テキストファイルの1行を変数に読み込む方法を調べること。 http://www.happy2-island.com/vbs/cafe02/capter00205.shtml のFSOの項に説明有り。 その他も多数。読んで書くぐらいのコードは自分で調べてから、1,2,3について質問のこと。 指定の文字列があるかどうかならInstr関数を使うと、その位置がわかる。 >名前を除きたい場合は「abc」を出力したい。) 意味不明。 >名前 abc   とは何? 何がしたいのか? ーー >例(名前:abc →:以降をとりたい場合は「abc」を出力したい。) 意味不明。 abcの出現位置はInstr関数で判る。それ+3が以降ということになる。 >2に加えて次の行も出力したい場合。 例(abc +次の行全部を出力) 次の行を結合したいのか。&で結合したら仕舞い。 これも意味不明。 別の「文章で説明のこと。 現状の実例となってほしい状態と、その意味を説明すること。 ーーー インプットファイルと別にアウトプットファイルを考えること。 、

craftx
質問者

お礼

ありがとうございます。参考になりました。

関連するQ&A

  • unix awkコマンド 複数区切り

    カンマ2つ(,,)+文字の抽出方法がわかりません・・・。 例: ファイル内(下記2行)に対して 12,34,,567@89 1,2,34,,567@89 1行目2行目ともに「567」が表示したいです。 # ”カンマ2つを一つの文字列”だけだと「awk -F",,"」でいけますが、+文字列がどうやってもできません。。

  • VBからExcelのデータを参照するには?

    VBからExcelのデータを参照するには? ExcelのA列を、参照しようとしています。 このA列には数字も混じっています。 例えば A123 abc 456 qwer のように、4行あったとします。 VBのソースコードは、次の通り --------------------- Dim elSequence(10) As String i = 0 Do Until objSheet.Range("a2").Offset(i,0).Value = "" elSequence(i) = objSheet.Range("a2").Offset(i,0).Value i += 1 Loop --------------------- 問題は、Excelのセルに「数字だけの場合(上記の例で4行目)」で、VBはこれを、文字列として扱わずにDouble型と認識してしまいます。 例え、Excelのセルを、プロパティの文字列指定としても「456」はDouble型になってしまいます。 Excelから受け取ったデータを、文字列への変換はどのようにしたら良いですか。 参考になりそうなWeb等でも構いませんので、教えていただけませんか。

  • (Excel VBA)困っています・・・orz

    エクセルを使うとある業務でマクロを組み、最適化を図ろうと試みているのですが 気がつけば高度な領域に突入していまして、僕みたいなレベルじゃ全然???な状況になってしまいました。 まず A列の1行目から任意の行に(10行までしかなかったり、1000行まであったりとランダムにあるとする)、任意の文字列(ABCなど)があるとします。 それからオートフィルタを使い、A列からある任意の文字列(ABCなど)を検索条件にしてデータを抽出します。 抽出されたデータベースのA列には検索条件にある「ABC」が任意の行まであり、その抽出されたデーターベースのD列に今度は「XYZ」とという文字列を 抽出された分の最終行まで割り振る・・・ つまりA列《ABC》で検索され抽出されたデータのD列には《XYZ》が自動に入力される もし、検索条件(ABC)で抽出されたデータが「0」件だった場合は、D列には何もせず、次の検索条件に進む・・・ というものをマクロで組みたいのですがどうやったらよいのでしょうか?? 何卒、ご教授お願い致します。

  • VBスクリプトで指定コマンドを使って日付の取得

    お世話になります。 VBスクリプトがうまく設定できなくて困っています。 下記は日付取得までです。 rem #***************************************** Option Explicit dim w_date rem #***************************************** rem # STEP01 パラメータチェック rem #***************************************** IF WScript.Arguments.Count = 0 then WScript.Echo "Parameter_No" WScript.Quit 99 End IF IF IsNumeric(WScript.Arguments.Item(0)) = False then WScript.Echo "Numeric_Check_Error" WScript.Quit 99 End IF rem #***************************************** rem # STEP02 日付計算 rem #***************************************** w_date = replace(DateAdd("d",WScript.Arguments.Item(0), date),"/","") WScript.Echo w_date Script.Quit 0 【前提】 cip△dtコマンドをDOSで打つと例のように出力されます。 【例】 YYYY/MM/DD△00:00:00 cip~~~~~~~ YYYY/MM/DD△00:00:00 cip~~~~~~~ 【実現したいこと】 VBスクリプトで、その1行目の日付を取得し、DOSの変数として保持したいです。 【前提】 cip△-dYYYYMMDDをDOSで打つとYYYYMMDDが入力した通りにでます。 【例】 YYYY/MM/DD△00:00:00 cip~~~~~~~ 【実現したいこと】 VBスクリプトで、前日の日付を取得し、DOSの変数として保持したいです。 どなたか助けてください。 宜しくお願いします。

  • VBスクリプトで指定したコマンドで日付を取得するには?

    お世話になります。 VBスクリプトがうまく設定できなくて困っています。 下記は日付取得までです。 rem #***************************************** Option Explicit dim w_date rem #***************************************** rem # STEP01 パラメータチェック rem #***************************************** IF WScript.Arguments.Count = 0 then WScript.Echo "Parameter_No" WScript.Quit 99 End IF IF IsNumeric(WScript.Arguments.Item(0)) = False then WScript.Echo "Numeric_Check_Error" WScript.Quit 99 End IF rem #***************************************** rem # STEP02 日付計算 rem #***************************************** w_date = replace(DateAdd("d",WScript.Arguments.Item(0), date),"/","") WScript.Echo w_date Script.Quit 0 【前提】 cip△dtコマンドをDOSで打つと例のように出力されます。 【例】 YYYY/MM/DD△00:00:00 cip~~~~~~~ YYYY/MM/DD△00:00:00 cip~~~~~~~ 【実現したいこと】 VBスクリプトで、その1行目の日付を取得し、DOSの変数として保持したいです。 【前提】 cip△-dYYYYMMDDをDOSで打つとYYYYMMDDが入力した通りにでます。 【例】 YYYY/MM/DD△00:00:00 cip~~~~~~~ 【実現したいこと】 VBスクリプトで、前日の日付を取得し、DOSの変数として保持したいです。 どなたか助けてください。 宜しくお願いします。

  • vbスクリプトについて

    Excelファイル(D:\test.xls)を再起動するvbスクリプトを作成し、 4時間おきに実行するタスクスケジュールを設定したいと思います。 ※6:00、10:00、14:00、18:00、22:00、2:00のタスクスケジュールを作成し、  vbスクリプトを実行。 次のタスクスケジュールが実行されるまでの4時間は、Excelファイル(D:\test.xls)は 開いたままの状態です。 なので、vbスクリプトで、まずExcelファイル(D:\test.xls)が開いている場合は、 「D:\test.xls」を一旦(上書き保存なしで)閉じて、再度、「D:\test.xls」を開きたいと思っています。 ※他のExcelファイルが開いている場合は、「D:\test.xls」のみ閉じる。 「D:\test.xls」を開くスクリプトはできたのですが、「D:\test.xls」を閉じるところがわかりません。 どなたか教えていただけないでしょうか。 【vbスクリプト】----------------------------------------- '「D:\test.xls」が開いている場合は閉じる  ??? '「D:\test.xls」を起動する Dim xlApp Dim xlWbk Set xlApp=CreateObject("Excel.Application") xlApp.Visible=True Set xlWbk=xlApp.Workbooks.open("D:\test.xls",True) ---------------------------------------------------------

  • 【VB】初歩的で申し訳ないですが...

    お世話になります。VB6を使用しています。 文字列がずらっと入った変数があるとします。 その文字列の中に「abc」が入っていたらTRUE、なかったらFALSEを返したいのです。 「abc」は文字列のどこにあるか決まっていません。 どうすればいいのでしょう。 大変初歩的な質問になりますがよろしくお願いします。

  • VBスクリプトの作成方法について教えてください。

    VBスクリプトの作成方法について教えてください。 あるアプリケーションにて、VBスクリプト編集の機能が有りそれを有効にします。 でイベント用スクリプト入力欄には 【サンプル: Value = Value + "123", サブ文字列の値に123を加えます。】 となっています。 これをサンプルとうりに入力欄に Value = Value + "123" と入力したら元データが、 AAAAAAAだったのが AAAAAAA123と表示されました。 元データを以下の条件によってVBスクリプトにて変化させたい場合 VBスクリプトはどのように作成すればいいでしょうか? データは半角で英数字のみでそれが混在です。 (元データは夜間バッチで自動上書更新されるので元データファイルに  式を入れておく事は出来ません。) 1.○○○○○○○○○○○○○○(先頭が3以外で14文字)     ↓   ○○○-○○○○○-○○-○○-○○ 2.○○○○○-○○○○○(5ケタ-5ケタ)      ↓   ○○○○○-○○○○○(変換しない)   3○○○○-○○○○○(5ケタ-5ケタ)     ↓   3○○○○-○○○○○(変換しない)   3A○○○-○○○○○(5ケタ-5ケタ)     ↓   3A○○○-○○○○○(変換しない) 3.○○○○○○○○-○○○○○(8桁ハイフン5桁)     ↓   ○○○-○○○○○-○○○○○   3○○○○○○○-○○○○○(先頭が3で8桁ハイフン5桁)     ↓   3○○-○○○○○-○○○○○   3A○○○○○○-○○○○○(先頭が3Aで8桁ハイフン5桁)     ↓   3A○-○○○○○-○○○○○ 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○ 5.3A○○○○○○○○○○○○(先頭が3Aで14桁)    ↓   3A○-○○○○○○○○○○○ よろしくお願いします。

  • VBスクリプトサポートのインストール

    WindowsUpdate後に、 -------------------------------------------------- 「オンデマンドインストール 」 このページを正しく表示するには次のコンポーネントを ダウンロードしてインストールする必要があります。 VBスクリプトサポート -------------------------------------------------- のダイアログが出たのですが、「いいえ」を選択してしまいました。 それ以降、特定のページが見れなくなってしまいました(T_T)。 再度「WindowsUpdate」を試みても、 「利用可能な更新を検索しています..0%完了」で止まってしまいます。 IEの再インストール以外の方法で、VBスクリプトをインストールするには どうしたらいいのでしょうか? 環境:windows98 SE、IE6(sp1)

  • VBスクリプトにて検索した文字を出力

    VBSによりコンピュータ名やIPアドレスやプロキシなどの情報を、PC.txtに出力させました。 以下のツールを作りたいのですが、ご教示いただけないでしょうか。 まずC:\PC配下に上記PCx.txtを複数格納しております。(内容はそれぞれのPCのもの) ツール実行後、テキストファイルを一つ一つ読み込み、 "IPアドレス"という検索文字に該当した行をその検索文字列とスペースを省いた値(xxx.xxx.xxx.xxx)を Csvに出力させます。 次に同じように他の出力したい項目を検索していきます。 イメージとして(IPアドレス,, , , ,・・・)とcsvに出力していきます。 次に2個目のテキストファイルを読み、次の行に同じく出力していきます。 最終的にテキストファイル数=CSVの行数となるようにしたいと思います。 ある場所のテキストの文字を検索する、そして必要部分のみCSVに出力するという方法のイメージがつきませんのでご教示頂けますでしょうか。

専門家に質問してみよう