VBスクリプトの作成方法について

このQ&Aのポイント
  • VBスクリプトの作成方法について教えてください。アプリケーション内でVBスクリプトを有効にする方法や、イベント用スクリプトの入力方法などについて詳しく説明します。
  • VBスクリプトを使用してデータを変化させる方法について教えてください。具体的な変化条件に応じて、VBスクリプトの作成手順をご説明します。
  • VBスクリプトを使って文字列を変換する方法について教えてください。変換条件ごとにVBスクリプトのコード例を紹介し、具体的な手順を解説します。
回答を見る
  • ベストアンサー

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○-○○○○○○○○○○○ よろしくお願いします。

  • gx9wx
  • お礼率95% (440/460)

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2の回答者です。 >「このスクリプトはValue プロパティから読み出されていません。 >現在指定されているデータソースが完全に無視されています。」 Valueプロパティから読み出されていません、という意味は、分かりますが、その前にオブジェクトがあります。そうすると、VBScript とは異質なものになってきてしまいます。まず、オブジェクトは何かということを把握しなければ、Valueプロパティは取り出せません。 >・VBパワーユーザーでもスクリプトアシスタントの有用性の理解が可能。 だから、VBScript ではなく、VBスクリプトなのでしょうね。 ソフト名が有名なものなら、こちらでも、ある程度、インターネットでたぐり寄せて教えられるとは思います。私が持っているもので、VBScript に準拠したものもありますが、同じ言語だとは思えない違いがあります。ただ、単に、文法だけです。 あえて、ソフト名を隠して質問したのでしょうから、回答は、これまでという所かなって思います。

gx9wx
質問者

お礼

ご丁寧にありがとうございました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

VBスクリプトということは、VBScript ということでしょうけれども、 >あるアプリケーションにて、VBスクリプト編集の機能が有り    >元データを以下の条件によってVBスクリプトにて変化させたい場合 >VBスクリプトはどのように作成すればいいでしょうか? 変化させるなら、Select Case ですればよいと思うのですが、その「あるアプリ」そのものが、VBScript の機能というか、それそのものの文法や関数を格納しているのでしょうか。例えば、VBAとVBScript とは似ている部分と違う部分がありますから、同じとは言い切れません。関数などは、どうなのでしょうか。 はたして、VBScriptを「本当」にサポートしているのですか? >高度な編集でVBスクリプト編集を選択するとイベント用スクリプト入力欄が表示されます。 >【サンプル: Value = Value + "123", サブ文字列の値に123を加えます。】 VBScript と同じという意味で、そんな説明をしたのですね。でも、逆に、ますます、怪しくなってしまいます。どこまで同じなのでしょうか。WScript の Ver5.5 とか、Ver2 までとか、はっきりしたほうがよいです。例えば、Like 演算子、Instr 関数、Mid 関数や Replace 関数はどうなのか、とか。 それに、変数だけしか示していませんが、データの「入り」と「出」は良いのでしょうか? 本来、データの法則は、ご自分で解析していただきたいですね。以下は、完全に動くかどうかは分かりません。それに、ハイフンの全角・半角の問題が若干残っています。掲示板の質問文では、全角が使われています。だから、Instr 関数は、TextCompare にしました。 'VBScript Dim myData Dim mValue Dim buf Const vbNarrow=8 myData = Array("41234564811114", "12345-12345", "12345678-12345", "31234567890123", "3A145677812300") For Each n In myData n = Trim(n) Select Case True Case Left(n, 2) = "3A" And Len(n) = 14 And InStr(1,n, "-",1) = 0 mValue = Left(n, 3) & "-" & Mid(n, 4) Case Left(n, 1) = "3" And Len(n) = 14 And InStr(1, n, "-", 1) = 9 n = Replace(n, "-", "",1, -1 ,1) 'ハイフンを抜く mValue = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) Case Len(n) = 14 And InStr(1,n, "-",1) = 9 n = Replace(n, "-", "",1 , -1, 1) 'ハイフンを抜く mValue = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) Case Len(n) = 14 And InStr(1,n, "-",1) = 0 mValue = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 2) _ & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) Case Else mValue = n End Select 'MsgBox mValue Next

gx9wx
質問者

お礼

本などのサンプルを入力した時と同じで 「このスクリプトはValue プロパティから読み出されていません。 現在指定されているデータソースが完全に無視されています。」 と表示されます。 >例えば、VBAとVBScript とは似ている部分と違う部分がありますから、同じとは言い切れません。 >関数などは、どうなのでしょうか。 >でも、逆に、ますます、怪しくなってしまいます。どこまで同じなのでしょうか。 >はたして、VBScriptを「本当」にサポートしているのですか? >でも、逆に、ますます、怪しくなってしまいます。どこまで同じなのでしょうか。 ヘルプを隅々まで読みました。 ・スクリプトを入力するか、またはスクリプトアシスタントの式作成ツールを使用して、 ・実際のスクリプトを作成。 ・スクリプト記述を補助するための参照および式作成ツールの提供。 ・技術経験の少ないユーザーのためにスクリプト デザインが簡略化。 ・VBパワーユーザーでもスクリプトアシスタントの有用性の理解が可能。 ・VBスクリプトは、MicrosoftのVisual Basicプログラミング言語のサブセット。 ・VBスクリプトは、プログラムそのものを書くというより、 ・既存のプログラムに機能を追加する形。 このアプリ専用のスクリプトアシスタントで使用可能にする特別な関数及びプロパティなども 出てきました。 とにかくヘルプでの情報が膨大で読みきれません。 私が行おうとしている事が間違っているみたいです。 お時間をとっていただいてありがとうございました。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

サンプルと質問の関連がよく分からないですが。。。 文字列操作の基礎も分からないほど素人だと説明したかったんですか? ・・・それだと、プログラムという作業自体できないでしょう? 勉強しないでプログラムなんてできるわけが無いので、勉強する事を お勧めします。 Left 関数で切り出した文字列を If 文で判定すれば良いのでは? 入門書にサンプルが載ってるレベルの処理なので、まずはVBスクリプト の入門書を本屋で買ってくるところからはじめてみては?

gx9wx
質問者

お礼

2回も回答をしていただきましてありがとうございました。

gx9wx
質問者

補足

申し訳有りません。 勉強しなければ駄目なのは理解していますが時間が有りません。 今回乗り切れればいいので質問いたしました。 このアプリケーションはラベル印刷ソフトで 指定したデータベースからデータをひっぱて来て画面に表示をしています。 で印刷エリア内に表示している各文字オブジェクトをクリックすると ウィンドーが開きます。 で素人用に簡易編集用各コマンドがあります。 例えば ・左から何文字までを選択【  】 ・全角文字に変換する 等々。 で高度な編集でVBスクリプト編集を選択すると イベント用スクリプト入力欄が表示されます。 ひっぱて来て画面に表示された文字がAAAAAAだとして ここに Value = Value + "123" と入力をすると AAAAAA123 と表示が変化します。 >Left 関数で切り出した文字列を If 文で判定 エクセルとかですと =LEFT、=IF とかで、かつ文の中では変換したい対象セルを指定します。 この場合切り出す対象データは文の中でどう定義すればいいのか 入門書のサンプルではわかりませんでした。 よって Value = Value + "123" と文例を載せてみました。

関連するQ&A

  • VBスクリプトで他条件分岐を作成したいです。

    VBスクリプトで他条件分岐を作成したいです。 大変申し訳ありません。再質問です。 使用している印刷ソフトにて以下の説明があります。 VBスクリプト(Microsoft Visual Basic Scripting Edition) とは、Windows PCで使用できるスクリプト言語です。 Visual BasicやOfficeのVBAとは似ていますが、別の言語となります。 本印刷ソフトはVBスクリプトを利用する事で、あらかじめ用意されている書式以外の 自由な書式で表現したり、データーベースに基づく複雑な条件分岐に従って 内容を変更したりできます。 :省略 データソースに入力されている値に対して後処理をかけることができます。 (データソースはExcelからデータベースフィールドで取得し、  値をその他のオプションのVBスクリプトで後処理します) ようするにValueから値を読み込み、値を編集してValueに返すという 処理をすることになります。 例えばデータソース 3A500100000099 の 3A5と00100000099の間(3文字目のあと)に ハイフンを入れるスクリプトであれば   str = Value   Value = Left(str,3) & "-" & Mid(str,4,14) という内容になります。 この説明から 現在ソフトの設定にて接続されているデーターソース(指定のエクセルファイルのC列) に入力されている値において以下の5種類が存在していて(全て半角英数字) その5種類によって以下の法則で編集(半角ハイフンをかます)をして値を返したいです。 データ元のエクセルファイルに式を入れるのも選択肢ですが、このエクセルファイルは システムの夜間バッチでファイル名は同じで上書更新される為エクセルに式を入れておいても 翌日には式が消えてしまいます。 このソフトはこういう場合に取得したデータを加工して表示されそれが印刷されるので この機能を使用したいのです。 Select Case を使用するべきだと思うのですが未経験者の私の手に負えません。 今回限りの設定なのでなんとか乗り切りたいです。 よろしくお願いします。 1.○○○○○○○○○○○○○○(先頭が3以外で14文字)     ↓   ○○○-○○○○○-○○-○○-○○(3-4、8-9、10-11、12-13桁の間に半角ハイフンを入れる) 2.○○○○○-○○○○○(5ケタ-5ケタ)      ↓   ○○○○○-○○○○○(変換しない)   3○○○○-○○○○○(先頭が3で5ケタ-5ケタ)     ↓   3○○○○-○○○○○(変換しない)   3A○○○-○○○○○(先頭が3Aで5ケタ-5ケタ)     ↓   3A○○○-○○○○○(変換しない) 3.○○○○○○○○-○○○○○(8桁ハイフン5桁)     ↓   ○○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3○○○○○○○-○○○○○(先頭が3で8桁ハイフン5桁)     ↓   3○○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる)   3A○○○○○○-○○○○○(先頭が3Aで8桁ハイフン5桁)     ↓   3A○-○○○○○-○○○○○(3-4、8-9桁の間に半角ハイフンを入れる) 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○(5-6、10-11、12-13桁の間に半角ハイフンを入れる) 5.3A○○○○○○○○○○○○(先頭が3Aで14桁)    ↓   3A○-○○○○○○○○○○○(3-4桁の間に半角ハイフンを入れる)

  • VBスクリプトの配列数字をJAVAスクリプトで使うには

    表題があまり良くないですが VBSでページを作っています その中で ページ閲覧者がテキストボックスに値を記入したときに JAVAスクリプトのonchangeでJAVAスクリプトへ飛んで VBスクリプトで定義した配列の値を代入したいのですが うまくいきません 飛んでいった先のコードが <script type="text/javascript"> <!-- //値の代入 function hoge(FRM){ FRM.hoge1.value=ここにVBスクリプトの配列 } // --> </script> これだけのことなのですが 配列を直接数字で書くと FRM.hoge1.value=<%=atai(1)%> hoge1にはきちんと値が入力されます しかし この1と言う数字の所に FRM.hoge2.value の値をいれてやろうとすると イメージとしては FRM.hoge1.value=<%=atai(FRM.hoge2.value )%> なんですが、これではエラーがでます(当然ですよね) 色々"" でくくったり & や + ()などの 組み合わせでやってもうまくいきません どなたか正しい構文か方法を教えてください よろしくお願いします  

  • ファイル処理に関して VB2005

    例えば。下のようなファイルが二つあって。 ファイル1 AAAAAAA ファイル2 1111111 2222222 3333333 ※実際のファイル2のデータは容量4.3MBで。80000行ぐらい。 ファイル3 AAAAAAA 1111111 2222222 3333333 1行のデータをファイル2の先頭に入れたいのですが 結果をファイル3のようにしたいのですが。 ここではわかり易くファイル1としましたが、 本当は別にファイルである必要もなく変数にデータを入れてものでもいいのですが。 簡単な方法でよい方法がありましたら教えてもらえないでしょうか? 環境 Visual Studio 2005 Pro VB2005

  • ページデザインとスクリプトを別ファイルにする方法

    こんにちは。ご覧頂き、ありがとうございます。 PHPの初心者の者です。 VBやC言語は仕事で使っていたのですが、 今回PHPを初めて使っています。 今、会社で以下のような課題を出されました。 - 入力ページ、確認ページ、結果表示ページから成る - 入力ページでは郵便番号(7桁)の入力欄と  送信ボタンを表示 - 入力ページで送信ボタンを押した際、  郵便番号欄の値を半角に変換してハイフンを除去 - 郵便番号欄の値が「空文字列」または  「7文字の半角数字以外」の場合は  「郵便番号欄の値を保持」したまま  入力ページを再表示 - 入力ページを再表示する再、  郵便番号欄の下に入力値に応じて  「入力されていません」または  「入力内容が正しくありません」と表示 - 確認ページでは郵便番号、戻るボタン、  次へボタンを表示 - 確認ページで戻るボタンが押された場合は  「郵便番号欄の値を保持したまま」 入力ページを再表示 - 確認ページで次へボタンが押された場合  は結果表示ページに「入力された郵便番号  はXXX-XXXXです」と表示 - ページデザインは後で差し替えるので  スクリプトとは別ファイルにしておく - セッションは使わない この課題の 『ページデザインは後で差し替えるので  スクリプトとは別ファイルにしておく』という 項目がどういう風にすればいいのか さっぱりわかりません。 ご存知の方はご教授ください。 HTMLもあまり分かっていない状態なので、 具体的に教えて頂けるとありがたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Excelで文字列12-34を12-0034に変換

    お世話になります。 2つの表(仮にA表、B表とします)があり、 A表には、12-0034、56-0789 のように 2桁ハイフン4桁 で入力されており、 B表には、12-34、56-789 のように、ハイフン以降の頭のゼロを省略して入力されています。 A表の 12-0034 に相当するB表の 12-34 をVLOOKUPで拾いたいのですが、どうするのが良いでしょうか? B表の 12-34 を 12-0034 に、56-789 を 56-0789 に桁合わせして変換することが可能なら、B表のデータを一旦変換してからVLOOKUPしようと思うのですが、上手い方法が分かりません。 御教示下さいますようお願い致します。

  • VB.NETでブラウザのフォームに入力する方法について

    VB.NETでブラウザに表示されたWEBページのフォームに データを入力したり、ラジオボタンの設定をしたりしたいのですが、 入力内容によってフォームの入力欄がEnabled = True や Falseに 切り替わる入力欄がある場合、VBでそのエレメントに データを設定してもフォームを送信などをした際に反映されていません。 例えばラジオボタンで選択A、選択B、その他という3つの選択があって、 その他を選択すると、テキスト入力エリアが入力可能になるというフォームです。 ブラウザに直接手動で設定を変更すれば、入力欄のEnabledが切り替わるのですが、 VBでラジオボタンを設定した場合は切り替わらず、Enabled = False の状態のまま VBでデータを設定しても受け付けられないようです。 この為、VBでデータを設定した際に、別の欄のEnabledの状態を変えたいのですが、 どのような方法でやれば良いでしょうか。ご教授いただければ幸いです。

  • VB6からEXCEL2000に罫線と塗りつぶしを出力したいのですが

    VB6から入力されたデータを計算や変換して EXCELに出力するプログラムを作成していますが EXCELのセルにデータを出力することはできましたが、 セルの塗りつぶしとフォントの色の出力(変更)がわかりません。 サンプルなどを探してみましたが見当たらなかったので、どなたかわかる方がいましたらよろしくお願いします。

  • INPUTでスクリプトを使うには?

    HTMLやJAVAも絡んでくるので その他の部類で投稿させて頂きます。 <INPUT value="<script language="javascript">document.write(getNumFormat('<c:out value="${売上予算}"/>'));</script>"> こんなイメージでJSPに今、メソッドを書き込んでいます。 ここでは、テキストボックスに整数を入力、 またはDBから抽出してきた数字が表示されます。 そこで私がやりたいのは、 整数を三桁区切りのカンマ付きで表示したいのです。 VALUEに記述してある <script language="javascript">document.write(getNumFormat('<c:out value="${売上予算}"/>'));</script> だけだと私の意図する様に表示されますが、 INPUTを付けてしまうと文字列として扱ってしまうため、 命令文がテキストとして表示されてしまいます。 一体、どうすればいいのでしょうか?

  • VBとExcelどっちが適してます?

    作る前から迷っているので、相談します。 元データ(csv)を操作して、別の変換データ(csv)に変換するソフトを作っています。 1.元データは、10フィールド×約5000行のcsv形式です。 2.元データを読み込み、11~550フィールドで1~10フィールドのデータを操作します。(中間データ) 3.1~550フィールドのデータを作業用データ(csv)として保存します。 この後も作業用データ(csv)を使って、変換データを作成したいのですが、 とりあえず、1~3の作業をするにあたって、VBもしくはExcel&VBAのどちらかで・・と思っていますが、 550フィールドとなると、Excel2000ではシートを3つは使用しなくてはいけないし、VBのほうが速いのかなと、 どっちがいいのか迷っています。 中間データの内容も確認したいので、表形式ならExcelかなあと思っていますが、 一般的にはどうなんでしょうか。 大ざっぱな説明でわかりにくいですが、皆さんの意見を参考にして考えてみたいので、お願い致します。

  • 数字を、【ハイフン付】の形式の数字へ変換する関数

    タイトルの件、質問いたします。 下記の画像のように、数字をハイフン付の数字へ変換する関数を 教えてください。 【例】 A1セルに 12345678912345 と入力すると A2セルに 123-4567-89-123-45 と、ハイフン付の数字に変換される 【補足】 エクセルバージョンは、2002です。 数字は14ケタです。 数字、ハイフンは全て半角です。 ご存知の方、よろしくお願いいたします。

専門家に質問してみよう