• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBスクリプトで他条件分岐を作成したいです。)

VBスクリプトで他条件分岐を作成する方法

このQ&Aのポイント
  • VBスクリプトを使用して、指定の条件に基づいて値を編集する方法について説明します。
  • Windows PCで利用できるVBスクリプトを使用して、印刷ソフトの設定に接続されているデータソースの値に対して編集を行う方法を解説します。
  • VBスクリプトを利用して、データソースの値を読み込み、指定の条件に基づいて編集し、値を返す処理の方法について説明します。

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

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

>no.4とno.5がno.1のパターンで編集 されてしまいました。 パターンで言われるよりも、例を示していただいたほうがよいと思います。 ご指摘な部分は、確認できていませんが、コードを短縮してみました。 n = Value Select Case True Case Left(n, 2) = "3A" And Len(n) = 14 And InStr(1, n, "-", 1) = 0 Value = Left(n, 3) & "-" & Mid(n, 4) Case Left(n, 1) = "3" And Len(n) = 14 And InStr(1, n, "-", 1) = 9 Value = Left(n, 3) & "-" & Mid(n, 4, 11) Case Len(n) = 14 And InStr(1, n, "-", 1) = 9 Value = Left(n, 3) & "-" & Mid(n, 4, 11) Case Len(n) = 14 And InStr(1, n, "-", 1) = 0 And Left(n, 1) = "3" Value = Left(n, 5) & "-" & Mid(n, 6, 5) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) Case Len(n) = 14 And InStr(1, n, "-", 1) = 0 Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 2) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) Case Else Value = n End Select

gx9wx
質問者

お礼

2010年9月27日16:48トライ結果です。 使用データーベースを頭3と頭3Aがあるものから 頭9と頭9Xの方に変更したので記述がそうなっています。 ・9月22日QNo.6198175-ANO.2で教えていただいた方の記述を修正 n = Value Select Case True 'パターン5の編集 9X頭で計14桁かつハイフンがない Case Left(n, 2) = "9X" And Len(n) = 14 And InStr(1,n, "-",1) = 0 '3-11でハイフン編集をする Value = Left(n, 3) & "-" & Mid(n, 4) '以下から下の行は削除 'パターン3の編集1 9頭で計14桁かつハイフンがある 'Case Left(n, 1) = "9" And Len(n) = 14 And InStr(1, n, "-", 1) = 9 'ハイフンを抜いて9頭で計13桁にする 'n = Replace(n, "-", "",1, -1 ,1) '3-5-5でハイフン編集する 'Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) 'このパターン3の編集1について '9頭と9X頭の定義が別文で指定されている 'それは9頭の計14桁ハイフン無しと9X頭の計14桁ハイフン無し 'よって計14桁でハイフンがあれば頭9も9Xもそれ以外も 'パターン3の編集2でモーラされるので省いてもいいのでは? 'ここまでの行は削除する 'ここから下の行は追加(編集不良の対策 パターン4の定義が欠如の為追加) 'パターン4の編集 9頭で計14桁かつハイフンがない Case Left(n, 1) = "9" And Len(n) = 14 And InStr(1, n, "-", 1) = 0 '5-5-2-2でハイフン編集 mValue = Left(n, 5) & "-" & Mid(n, 6, 5) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) 'ここから上の行まで追加(編集不良対策) 'パターン3の編集2-基本型8桁ハイフン5桁で計14桁 '頭は問わず計14桁でハイフンがある 'この定義で9頭と9X頭の8桁ハイフン5桁で計14桁はモーラできるはず Case Len(n) = 14 And InStr(1,n, "-",1) = 9 'ハイフンを抜いて13桁にする n = Replace(n, "-", "",1 , -1, 1) '3-5-5でハイフン編集する Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) '1の編集 頭は問わず計14桁でハイフン無し '9頭と9X頭はすでに条件分岐しているのでこれでいい Case Len(n) = 14 And InStr(1,n, "-",1) = 0 '3-5-2-2-2でハイフン編集 Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 2) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) '上記までの条件に該当しない物 パターン2の編集はここに含まれる Case Else 'その場合編集はしないで値を返す Value = n End Select '削除 'Next これだとパターン4が 90000000000000A→90000000000000Aで編集されません。 本来は90000-00000-00-0Aです。 現在正常編集できているQNo.6153785で教えていただいた物を修正した物 (このA-NO.4の補足の記述) と変わりないと思うのですが、なぜか駄目です。 まだ原因が不明です。 なお ・この回答9月26日QNo.6198175-ANO.4で教えていただいた物をそのまま使用した場合 全パターン正常に編集できました。 ありがとうございました。

gx9wx
質問者

補足

この回答をいただく前の9月24日深夜に修正完了し報告したかったのですが 補足もお礼も使い果たしできませんでした。大変申し訳ありません。 内容は一番最初9月4日QNo.6153785で教えていただいた物を修正です。 (9月4日QNo.6153785-ANO.2で教えていただいた物は動作がしなかったのですが  以下の様にしたら動作はしました。ですがNO.4の編集は正しくないです。)  9月22日QNo.6198175-ANO.2で教えていただいた物は動作はしますがNO.4の編集は正しくないです。) なお使用データーベースを頭3と頭3Aがあるものから 頭9と頭9Xの方に変更したので記述がそうなっています。 記述が完璧かの裏づけはないのですが、 現在実データーで検証中で5種類とも変換できています。 今日は勉強の為9月22日QNo.6198175-ANO.2で教えてもらった方の記述を修正してみます。 その後この回答9月26日QNo.6198175-ANO.4と見比べてみます。) 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=Value n = Trim(n) Select Case True  '5の編集 9X頭で14桁、ハイフンがない? Case Left(n, 2) = "9X" And Len(n) = 14 And InStr(1,n, "-",1) = 0  '3-11でハイフン編集 mValue = Left(n, 3) & "-" & Mid(n, 4)  'ここから下の行は削除    '3の編集 8桁-5桁の選択(1)9頭で計14桁でかつハイフンが1個ある?   'Case Left(n, 1) = "9" And Len(n) = 14 And InStr(1, n, "-", 1) = 9    'ハイフンを抜く   'n = Replace(n, "-", "",1, -1 ,1)    '3-5-5でハイフン編集   'mValue = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5)  'ここから上の行まで削除  'ここから下の行は追加(動作不良の対策)  '4の編集 9頭で14桁、ハイフンがない? Case Left(n, 1) = "9" And Len(n) = 14 And InStr(1, n, "-", 1) = 0  '5-5-2-2でハイフン編集 mValue = Left(n, 5) & "-" & Mid(n, 6, 5) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2)  'ここから上の行まで追加(動作不良対策)  '3の編集 8桁-5桁の選択(2)先頭は条件無しで計14桁でハイフンが1個ある? Case Len(n) = 14 And InStr(1,n, "-",1) = 9  'ハイフンを抜く n = Replace(n, "-", "",1 , -1, 1)  '3-5-5でハイフン編集 mValue = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5)  '1の編集 14桁でハイフンがない? Case Len(n) = 14 And InStr(1,n, "-",1) = 0  '3-5-2-2-2でハイフン編集 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  '追加 Value =mValue 4.9123456789012A(先頭が9で14桁)     ↓(5-5-2-2)   91234-56789-01-2A   (5と6、10と11、12と13桁の間に半角ハイフンを入れる) 【OK】

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

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

>no.1のパターンは編集されましたが >no.4とno.5がno.1のパターンで編集 >されてしまいました。 今、関わっている #6200348「エクセルでマクロの記録が出来ません。」側を一度、参考にしてください。9Xとか、数字と文字は違いますが、同じスタイルだと思います。もしダメなら、こちらも再検討します。

gx9wx
質問者

お礼

>もし、補足で書かれた内容で動くなら、以下のようにすればよいです。 >でも、これは、VBScript なんかじゃありません。 >前回の内容を少し替えただけです。 >今回の細かい仕様は分かりませんから、標準的な関数も使えるのかも不明では、 >なんとも言いようがありません。 このように回答をもらっており恐縮なのですが、 QNo.6198175-ANO.2の n = Value Select Case True ----省略----- Case Else Value = n End Select Next は 'Next にするだけで動作しました。(一部誤編集は除いて) (これはソフトがそうアラームしたので) QNo.6153785-ANO.2で教えていただいた、 '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 Else mValue = n End Select 'MsgBox mValue Next は動作がしなかったです。でアラームも(構文が不正です)だけでした。 '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=Value -----省略-----  '削除 'Next '追加 Value =mValue と修正したら動作した理屈がわかりません。(ただし、一部誤編集は同じ) 誤編集についてはどちらも省略部分の条件分岐と処理の部分を修正すれば 誤編集もなくなりその理由もわかったのですが この動作する、しないが私には検討もつきません。 どうもありがとうございました。

gx9wx
質問者

補足

いろいろすいません。 サンプルは以下のように準備し結果は以下のとうりでした。 なお使用するデーターベースは他で教えてもらっている 方を利用することにしましたので 3頭→9頭 3A頭→9X頭 にしています。 1.12345678901234(先頭が9以外で14文字)     ↓   123-45678-90-12-34   (3と4、8と9、10と11、12と13桁の間に半角ハイフンを入れる)   【OK】 2.55555-55555(5ケタ ハイフン 5ケタ)      ↓   55555-55555(変換しない)   【OK】   95555-55555(先頭が9で5ケタ ハイフン 5ケタ)     ↓   95555-55555(変換しない)    【OK】     9X555-55555(先頭が9Xで5ケタ ハイフン 5ケタ)     ↓   9X555-55555(変換しない)   【OK】 3.88888888-55555(8桁ハイフン5桁)     ↓    888-88888-55555(3と4、8と9桁の間に半角ハイフンを入れる)   【OK】   988-88888-55555(先頭が9で8桁ハイフン5桁)     ↓   988-88888-55555(3と4、8と9桁の間に半角ハイフンを入れる)   【OK】   9X888-88888-55555(先頭が9Xで8桁ハイフン5桁)     ↓   9X888-88888-55555(3と4、8と9桁の間に半角ハイフンを入れる)   【OK】 4.9123456789012A(先頭が9で14桁)     ↓   91234-56789-01-2A(5と6、10と11、12と13桁の間に半角ハイフンを入れる)    が正規のところ    ↓   912-34567-89-01-2A    (3と4、8と9、10と11、12と13桁の間に半角ハイフンを入れる)    で【NG】です。   5.9X123456789012(先頭が9Xで14桁)    ↓   9X1-23456789012(3と4桁の間に半角ハイフンを入れる)   【OK】 NO.2とNO.3は3種類記載しましたが これは、質問以前にいろいろ作成していた時に 基本的に14桁。で頭が9か9Xかそれ以外でNO.1が基本編集で NO.4とNO.5で9と9Xで条件を付けていたのですが 例外パターンのNO.2とNO.3で頭が9と9Xが来た場合 全部NO.4とNO.5になってしまったので NO.2とNO.3にも9と9X頭を追加して こちらが誤編集されないようにという事で記述しました。 最初に教えていただいた記述を修正したら 質問前に苦闘していた時と同じくNO.2とNO.3にて頭に9と9Xがくると NO.4に編集されてしまう。 88888-55555 → 88888-55555 【OK】 98888-55555 → 988-88555-55 【NG】  9X888-55555 → 9X8-885-55-55 【NG】 かつ 9123456789012A →91234-56789-01-2Aになってほしいが          912-34567-89-01-2Aというのは直らずです。 で、その後、なんとか修正できて 解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>親オブジェクトとはこの場合、どれを指すのでしょうか? 根本的な部分のオブジェクト(プログラムの集合体でひとつの体系を為すもの)が理解していないからです。本来、直接、Value というプロパティに入れるような、VB系の言語に、そのような仕様を持つものはありません。 >ソフトはすごく簡単です。 ?使い方の説明は必要はないのですが……。 掲示板で、ソフトの名前を言えないようなものの質問は控えたほうがよいと思います。 >資料の無断転載はいけないと思い、自分で理解した内容で質問しています。 引用と転載とは違います。どういうソフトのどこのヘルプやマニュアルのどこに書かれている内容か、必要な分を掲示するというのは、著作権法で認められた行為です。 もし、補足で書かれた内容で動くなら、以下のようにすればよいです。でも、これは、VBScript なんかじゃありません。前回の内容を少し替えただけです。今回の細かい仕様は分かりませんから、標準的な関数も使えるのかも不明では、なんとも言いようがありません。 '(基本的に全角空白は絶対にいれないでください。ハングする可能性があります。) n = Value Select Case True Case Left(n, 2) = "3A" And Len(n) = 14 And InStr(1,n, "-",1) = 0 Value = 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) Value = 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) Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) Case Len(n) = 14 And InStr(1,n, "-",1) = 0 Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 2) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) Case Else Value = n End Select Next 最後に、私個人も、いくつかのソフトの独特の、マクロ・スクリプト言語を持っているものがありますが、それは、言語として完全に成り立っているものではないから、必ずしも使いこなせるものではありません。 そういうものは、自分で勉強していくしかないと思います。まして、VBScript に似ているというだけでは、どうにも解決するとは思えないのです。同じソフトを使っている同好の人たちのサイトさえあれば、情報交換から、ある程度の目処が立ちますが、こういうグローバルな掲示板で、ソフト名さえ公開しないというなら、そもそも無理な質問だと思っていただいたほうが良いと思いますね。

gx9wx
質問者

お礼

他の事もいろいろ教えていただきまして、すいません。 教えていただいた記述を入れてみました。 :Nextが不正です。 とアラーとが出ました。 でこのNextを削除したら、 思ったとうりに動作をしました。 5種類全部調べましたが完璧に編集されて表示されます。 本当にありがとうございました。

gx9wx
質問者

補足

すいません。早合点でした。 no.1のパターンは編集されましたが no.4とno.5がno.1のパターンで編集 されてしまいました。 せっかく記述していただいので ところどころ修正しながら、試します。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

前回と同じ内容のようです。 この部門は、VBカテゴリでも、こちらのOffice系カテゴリでも同じ分野の質問に関しては、専門的な分野は同じ人が答える可能性が高いです。だから、私の指摘したポイントをクリアしていないと、どこで質問されても同じになってしまいます。 >VBスクリプト(Microsoft Visual Basic Scripting Edition) >とは、Windows PCで使用できるスクリプト言語です。 >Visual BasicやOfficeのVBAとは似ていますが、別の言語となります。 と書かれても、こんなあたりまえの説明は不要です。 しかし、問題は、VBScript との相違点です。 >ようするにValueから値を読み込み、値を編集してValueに返すという >処理をすることになります。 >例えばデータソース 3A500100000099 の 3A5と00100000099の間(3文字目のあと)に >ハイフンを入れるスクリプトであれば > >  str = Value >  Value = Left(str,3) & "-" & Mid(str,4,14) この記述では、VBAでも、VBScript でもありえないのです。VB系を知らない人のコードだと思います。 >(データソースはExcelからデータベースフィールドで取得し、 > 値をその他のオプションのVBスクリプトで後処理します) データソースは、どうやって取るのでしょうか。ODBC、ADO、DAO、それともオートメーションでしょうか。 オブジェクトの意識がまったくなく、それが書かれていません。 前回も書いたことを、具体的に書くと、もし、上記のコードがある程度の痕跡を持っているとしたら、 Dim str With ○○○ ←この部分(Valueの親オブジェクト)が分からなければ、エラーが返ります。   str = .Value '本当は、strは、VB系では関数だから、私は使わない。   .Value = Left(str,3) & "-" & Mid(str,4,14) End With 前回書いたように、Value の親オブジェクトは何か、それを書かない限りは無理です。 せめてソフト名を書けば、こちら側でも調べます。その内容を明かさないままに、VBスクリプト様のものを、VBScript だと言われても、解決は難しいのです。あまり専門的な内容を書くと、逆に混乱するから書かないけれども、ヘルプの参考資料があるなら、変数の宣言の部分から、完全に動くものを、そのまま貼り付けてほしいものです。でも、なぜ、ソフト名を書けないのでしょうか?プライバシーの問題?もし、そういう事情があるなら、あまり掲示板では、業務に関してはお聞きならずに、メーカーに聞いたほうが良いと思います。

gx9wx
質問者

お礼

2010年9月23日。 いろいろありがとうございました。 n = Value Select Case True Case Left(n, 2) = "3A" And Len(n) = 14 And InStr(1,n, "-",1) = 0 Value = 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) Value = 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) Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) Case Len(n) = 14 And InStr(1,n, "-",1) = 0 Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 2) & "-" & Mid(n, 11, 2) & "-" & Mid(n, 13, 2) Case Else Value = n End Select で動作しています。 4.3○○○○○○○○○○○○○(先頭が3で14桁)     ↓   3○○○○-○○○○○-○○-○○   (5桁と6桁、10桁と11桁、12桁と13桁の間に半角ハイフンを入れる) だけが、 パターン1の編集内容である ○○○-○○○○○-○○-○○-○○ (3桁と4桁、8桁と9桁、10桁と11桁、12桁と13桁の間に半角ハイフンを入れる) で編集されてしまいます。 それ以外は完璧に編集できています。 この部分かなと思い Case Left(n, 1) = "3" And Len(n) = 14 And InStr(1, n, "-", 1) = 9 n = Replace(n, "-", "",1, -1 ,1) Value = Left(n, 3) & "-" & Mid(n, 4, 5) & "-" & Mid(n, 9, 5) ところどころ修正してもこの症状は修正されず、 代わりに正常だったパターンが誤編集されてしまいました。 残りのパターンは編集されて印刷されていますしここらが限界かなと思います。 本当にどうもありがとうございました。

gx9wx
質問者

補足

申し訳ありません。 別に質問方式を変えて回答を得たかったわけではありません。 前回の質問は締め切ってしまい、 サポートに問い合わせ、情報を得たので再質問をしました。 サポートで使い方は教えてくれても、記述まではサポート外でした。 また資料の無断転載はいけないと思い、自分で理解した内容で質問しています。 ちなみに >例えばデータソース 3A500100000099 の 3A5と00100000099の間(3文字目のあと)に >ハイフンを入れるスクリプトであれば > >  str = Value >  Value = Left(str,3) & "-" & Mid(str,4,14) において str をAAAにしてみて AAA = Value Value = Left(AAA,3) & "-" & Mid(AAA,4,14) にしても変換されて表示されました。 ですからこのstrをベースに記述をすれば他条件分岐の記述を書けるのかなと 思いました。 >前回書いたように、Value の親オブジェクトは何か、それを書かない限りは無理です。 この親オブジェクトというのが言葉の意味がわかりませんので 何を伝えていいのかわかりません。 ソフトはすごく簡単です。 用紙サイズを決めると 年賀状作成ソフトのようにそのサイズで画面に白紙枠が表示されます。 エクセルのオートシェイプと同じ要領で その表示内にオブジェクトを挿入します。 でそこに文字入力をすればそれがそのまま印刷されます。 文字の拡大や位置などもエクセルのオートシェイプと おなじ要領です。オブジェクトをつかんで移動や拡大縮小、 また子画面を開いて、フォントや色、位置のミリ指定など) でそのオブジェクト部分をダブルクリックすると、 プロパティ画面になり、 ・画面データ(自分で入力) ・日付(システム日付から) ・シリアルNO. ・データーソース などの選択があります。 でデーターソースを選択すると どのデーターソースを利用するか入力画面になり 例えばマイドキュメントの売上というフォルダの 2009年とういうエクセルファイルのB列と指定します。 そうすると画面にはそのエクセルのデータのB列の 値を表示します。 エクセルに12345678901234と入力されていれば 画面にも12345678901234と表示されます。 でこのデータソース選択画面で VBスクリプトをONにして出てきた入力画面に str = Value Value = Left(str,3) & "-" & Mid(str,4,14) と入力して決定すると 先ほどは 12345678901234と表示されていたのが 123-45678901234と表示されます。 親オブジェクトとはこの場合、どれを指すのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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スクリプトの配列数字を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 )%> なんですが、これではエラーがでます(当然ですよね) 色々"" でくくったり & や + ()などの 組み合わせでやってもうまくいきません どなたか正しい構文か方法を教えてください よろしくお願いします  

  • 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 スクリプトで

    VB スクリプトで Error : Path not found Code : 800A004C Source : Microsoft VBScript runtime error というエラーが出ます。解決方法をご存知の方、教えてください。 よろしくお願いいたします。

  • VBスクリプトでエクセルを表示

    わかる方、教えて下さい。 サーバーサイトにあるエクセルファイル(例 C:\TEMP\PAPA.XLS)をASPのVBスクリプトで表示する方法を教えて下さい。 画面で何かをクリック(リンク)したらでは無く、VBスクリプトでポップアップ画面の様に表示したいのです。 お願いします。

  • 条件式のついて

    name="before" に7桁もしくは、8桁の半角数字の value があります。 もし7桁だったら、先頭から5桁目に「0」を挿入して、8桁にして name="after" に入力します。 "before" の value が8桁ならそのまま "after" に入力します。 上記の条件式の if else 文を考えておりまして、条件式の部分で煮詰まって しまっております。 ご教示お願い致します。

  • VBスクリプトでテキストファイルの行数カウント

    VBスクリプトでテキストファイルの行数をカウントする サンプルソースを探しています。 どなたかご存知の方、教えて下さい。

  • VBスクリプトでエクセルのセルに色をつける

    VBスクリプトを使って、あるエクセルファイルを開き、一行目に色をつけたいと思っています。なかなか良いサンプルコードが見つかりません。 どなたか参考になるサイトやコードを教えて頂けないでしょうか?

  • エクセル セルの先頭の0 VBAで

    テキストファイル.txtにおける数値 たとえば01234567の8桁を エクセルファイルの(A,1)セルに移動すると 1234567と表示されてしまいます あるコードがあるとしまして 途中省略しますが ・・・・・ .Cells(A, 1).Value = Str(Mid(buf, Pos9 + Len9, Pos10 - (Pos9 + Len9))) これは あるプログラムの流れということですが これで 1234567 となってしまうので このコードのあとに Range (Cells(A, 1)) .NumberFormatLocal = "@" .Value = Format(.Value, "00000000") (この場合は 8桁とすでにわかっている場合ですが もし先頭に0がいくつ付くかわからない場合のケースも 教えていただけますか) とつけましたが エラーとなります 御教示くださいませ win10 office356

  • ジャバスクリプトについて質問です。

    ジャバスクリプトでテキストエリアに入力した文字数を表示したいのですが半角数でカウントは出来ませんか? <html> <head> <title>チェック</title> <script type="text/javascript"><!-- function tyek( str ) { document.getElementById("inputlength"). innerHTML = str.length + "文字"; } // --></script> </head> <body> <textarea cols="40" rows="9" onkeyup="tyek(value);"></textarea> <p id="inputlength">0文字</p> <br> </body> </html> 上記の設定では全角も一文字、半角も一文字でカウントされます。 例 aあ ⇒2文字 これを半角一文字、全角二文字という風に設定したいのですがどうすればいいのでしょうか?まだスクリプトを勉強しだしたばかりでよく分かりません… 回答の方宜しくお願い致します。

このQ&Aのポイント
  • Three hundred years ago, Europe engaged in cruel acts towards Africa during the height of the slave trade.
  • However, equally cruel was Europe's withdrawal from Africa, leaving it to govern itself with only a vague hope of development and stability.
  • This withdrawal lacked a clear understanding of the time and historical processes necessary for stability, which had taken centuries to achieve in Europe.
回答を見る

専門家に質問してみよう