誰でもプログラマ(WSH編)(その5-使えるものは何でも使え)

前回は、公式をプログラムとして入力しておいて、変数の値を変更することにより、なんども同じプログラムで計算させました。もちろん、変数の値が違えば、結果も毎回違いました。でも毎回プログラムを変更するのは面倒ですね。そのあたりを改良してみましょう。

毎度のことですがメモ帳でプログラムを記述します。
以下のプログラムを入力してください。


Dim hankei, menseki
hankei = InputBox ("半径を入力してください")
menseki = hankei * hankei * 3.14
MsgBox menseki

間違いなく入力されたら、enn.vbsというファイル名で保存しましょう。
保存したら、ダブルクリックして実行です。
1-5-1
半径を聞いてきました。では、2を入れてみましょう。
1-5-2
そして、OKを押すと、、、
1-5-3
おおおおお、答えが出てきました。2 x 2 x 3.14 の答え、12.56が表示されています。
もう一回やってみましょう。
1-5-1
半径を聞いてきました。では、8を入れてみましょう。
1-5-4
そして、OKを押すと、、、
1-5-5
おおおおお、答えが出てきました。8 x 8 x 3.14 の答え、200.96が表示されています。

前回と違うのは、


hankei = InputBox("半径を入力してください")

この行だけです。前回は、


hankei = 2

になっていて、数字を変更するたびに、プログラムを変更していました。今回は、プログラムが聞いてきます。なんてかっこいいんでしょう。


hankei = InputBox ("半径を入力してください")

この、InputBoxって、MsgBoxに似てますね。そうです。MsgBoxの仲間です。MsgBoxもInputBoxも、Windowsに用意されている機能を呼び出しているわけです。
InputBoxは後ろに、(“と”)でくくられた部分を表示して、その上、入力するところも表示してくれます。んで、OKと押すと、その結果が得られるわけです。
その後、前回の変数の概念により、InputBoxの結果に対して、hankei という表札がつけられたわけです。プログラマ用語でいうと、InputBoxの返値がhankeiに代入されたといいます。

ではちょっと意地悪をしてみましょう。先ほどのプログラムを実行します。
1-5-1
半径を聞いてきましたここで、意地悪して、「こんにちは」と入れてみましょう。
1-5-6
んで、OKと押すと。。。。
1-5-7
うご、怒られた。
むちゃしちゃだめですねぇ。
さすがに、コンピュータでも、こんにちは x こんにちは x 3.14は計算できないようです。

今回はInputBoxという、Winodwsに用意されている機能を使いました。
MsgBoxも、Windowsに用意されている機能です。
Winodwsに用意されている機能はこれらだけではありません。もっとたくさんあります。
こちらはマイクロソフトのサイトに置いてある、僕らが使える機能の取扱説明書です。すんげぇ量がありますので、とても覚えてられません。プロのエンジニアも覚えていません。いつもこのサイトを見ながらやっています。こんなことできないかな。取扱説明書を調べて、あ、こんなんがある、あんなんもある、んじゃこれとこれを組み合わせたらこんなことができるな。ってな感じでいつも見ながらやっています。
これからも、ちょっとづつ紹介していくつもりです。おたのしみに。

今日のまとめ

  • 今日はコンピュータが生意気にも、質問してきた。
  • むかついたので、いじめてやった。
  • Windowsには知らない機能がいっぱいあるらしい。

「誰でもプログラマ(WSH編)(その5-使えるものは何でも使え)」への9件のフィードバック

  1. Dim hankei, menseki
    hankei = InputBox (“半径を入力してください”)
    menseki = hankei * hankei * 3.14
    MsgBox “面積を表示します”
    MsgBox menseki

    と入力したら面積が表示される前に「面積を表示します」と表示されます!
    ここで質問です面積の上に面積は・・・と表示させるにはどうすえばいいですか??
    色々試してみましたがダメでした
    最後の行のMsgBox mensekiの後にMsgBox “面積は・・・”と打ってもダメでした
    ぜひ教えてください!!

    1. もしかして既に解決しているかもしれませんが、一応。
      おそらく、質問の内容は、「面積は100です」みたいに表示したいってことかと思います。

      strMenseki = CStr(menseki)
      MsgBox “面積は” + strMenseki +”です”

      のようにCStrで数値を文字列に変換してから、プラス記号で繋ぎます。
      この場合のプラス記号は、文字列の接続という意味に解釈されます。

      誰でもプログラマ(WSH編)(その9- 何度だって挑戦)で、同じような技をつかって、「5回で正解しました」ってメッセージを出しており、そこに簡単な解説を書いています。

  2. すみません
    またまた質問なのですが
    メセージをだしOKをクリックすると指定したファイルが開く
    というような感じにしたいんですけど可能ですか?

  3. ファイルを開くこと自体は、@ITのWindows Script Host入門の記事のやり方で、できると思います。具体的には、
    WSScript.CreateObject(“Scripting.FileSystemObject”)
    で、ファイルシステムオブジェクトを作成して、それを使ってファイルにアクセスできます。

    ファイルシステムオブジェクト で検索するといろいろ解説しているページが見つかるかと。

    #ただ、僕が質問をちゃんと理解出来ていないような。。。変な回答してる気がする。

  4. diさんのアドバイスでやってみたら出来なかったので、未改良版です。

    dim a,b
    a = inputbox(“対角線の本数を調べたい多角形の辺の数を入力して、OKを押してください。ただし、入力する数値は3以上の整数とします。”)
    b = a*(a-3)/2
    msgbox”入力された辺の数の多角形の対角線の本数は”
    msgbox b
    msgbox”本です” 

    ここの2行目と3行目は改行しません。
    多角形の対角線の本数計算ツール.vbsで保存しました。

  5. 改良版出来ました。
    dim a,b
    a = inputbox(“対角線の本数を調べたい多角形の辺の本数を入力して、OKを押してください。ただし、入力する数値は4以上の整数とします。”)
    b = a*(a-3)/2
    strb = cstr(b)
    msgbox”対角線の本数は”+strb+”本です。”

    同じく、2行目と3行目は改行しません。

    ちなみに公式は、「対角線の本数=辺の本数×(辺の本数-3)÷2」を使いました。

    とてもわかり易いです。ありがとうございます。

コメントを残す