変数についての初心者の疑問と解説

このQ&Aのポイント
  • 変数とは、プログラム内でデータを格納するための入れ物です。
  • 例えば、#11=#145という記述では、#145の値を#11に代入することを意味します。
  • また、D#144という記述では、#144の値をDと結合して表します。
回答を見る
  • ベストアンサー

変数について

はじめまして。最近マクロの勉強をしようと思い始めてみましたが 最初から全然分かりません。以前に加工に携わっていたので多少は分かると思ったのですが・・・  例えば #11=#145 は145の値を11に代入するのか?11の値を145に代入するのか? D#144は144の値をDにくっつけて表すのか? といった具合です。 初心者ですみませんが教えて頂けますか?

noname#230358
noname#230358

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

  • ベストアンサー
noname#230359
noname#230359
回答No.2

代入は全て?←?右の値を左へです。 ループカウンターとして下記のような式をよく使います。 #1=#1+1  これを逆に?→?とは解釈のしようがありません。この形を覚えると判りやすいと思います。 但し #[#2+1]=#3+1 []内の計算をした変数番号へ ←右の値を代入 のような紛らわしい式も書けますが。。。。

noname#230358
質問者

お礼

岩魚内さんありがとうございます。 例があって分かり易く良く理解できました。 ありがとうございました。

その他の回答 (2)

noname#230359
noname#230359
回答No.3

マクロプログラムのチェック用に使えるWINのシェアウエアで、 Lance for windows と言う ソフトウエアがあります。 変数モニターがついているので実行途中検算できます。 一度 某メーカーの機械の制御ユーザーマクロを含んで 加工プログラムを描画してみた所、99%問題なく走りました。 通常のNC加工プログラムの検証に使用されるのでしたら まず問題ないと思います。 但し加工に使用されるのであれば必ず実機でデバッグしないと 問題が発生する可能性もあります。(NCのモデルが違うと 細かい所で仕様が違う事があります。例 変数の小数点の取り扱い等。)

参考URL:
http://homepage1.nifty.com/kubouchi/
noname#230358
質問者

お礼

元関係者さんありがとうございます。 早速使用してみたいと思います。 ありがとうございました。

noname#230359
noname#230359
回答No.1

こんにちは。 > 例えば #11=#145 は145の値を11に代入するのか?11の値を145に代入するのか? D#144は144の値をDにくっつけて表すのか? 前者です。 >D#144は144の値をDにくっつけて表すのか? 意味がよくわかりませんが、#144の値が<10>だったら、D10と言うことになります。

noname#230358
質問者

お礼

jiroさん早速の回答ありがとうございます。 実際に機械上で試したいのですが業務上無理ですが、 動作確認するには何か良い方法はありますか?

関連するQ&A

  • エクセル 変数?について

    C5に1という値を代入した場合 C6に表示される値は24 D5に表示される値は600 D6に表示される値は0 E5に表示される値は600 E6に表示される値は0   C5に2という値を代入した場合 C6に表示される値は32 D5に表示される値は1000 D6に表示される値は0 E5に表示される値は1000 E6に表示される値は0   C5に1という値を代入した上で D5の数字を500とした場合にD6に表示される値は2 (数字を100下げる毎に、D6に表示される値が+2される。) (数字を100上げる毎に、D6に表示される値が-2される。) E5の数字を500とした場合にD6に表示される値は1 (数字を100下げる毎に、D6に表示される値が+1される。) (数字を100上げる毎に、D6に表示される値が-1される。) というようなことをエクセルでやりたいのですが、生憎とエクセルはさっぱりです。 解りやすい方法が乗っているページ。または御説明をくださる方、宜しくお願いします。

  • [Excel VBA] 行の値を1つの変数に代入したい

    たとえばA1:A10に値があったら、3個ずつ値を1つの変数に代入したいのですがそのようなことは可能でしょうか?(改行は"%0D%0A"に置換します) たとえば、A1:A10に A B C D E F G H I J K とあったら、 1ループ目: strString = "A%0D%0AB%0D%0AC" のように代入したいのですが。 1つ1つのセルの値を追加代入していくしかないのでしょうか?

  • Java変数について

    こんにちは。Javaの初心者です。 そこそこ基礎知識もついてきたかと思いまして、初めて実用プログラムを組むことにしました。 そこで、今問題にあたってるんですが、 メソッド内にあるローカル変数に入ってる値を、メンバ変数に代入することは出来るのでしょうか? もしできるのでしたら、その方法をご教授してくだされば幸いです。 プログラムの初心者なので、勘違いしてることが多々あるかと思われますが、 ご回答の方、宜しくお願い致します。

    • ベストアンサー
    • Java
  • jsp~jspにhiddenを使って変数を飛ばしたい

    jspを勉強しています。 変数に代入した値をhiddenを使い飛ばしたいのですが、 うまくいきません。 String keyID = "123456"; <input type="hidden" name="S_id" value="keyID" /> 例えばこのような形で変数keyIDに値を代入して、hiddenで飛ばして 飛び先のjspで変数keyIDの値を取得したいのです。 どなたかアドバイスいただけるとありがたいです。

  • VBAのプログラムとシートでの計算の速度

     現在、エクセルVBAでマクロを組んでいます。 マクロで算出した値を、セルを指定して、シートに代入しています。シートの代入する理由は、途中の計算結果の確認とエクセル関数を利用し、マクロの簡便化を図りたいためです。  代入した値を基にして、エクセル関数を使った結果の値を、他のセルに表示(代入)していますが、VBAで、その結果の値を、利用しています。  お聞きしたいのは、最初にシートに代入してから、エクセル関数の結果を得られる前に、VBAが、値を取得しないかどうか心配です。  素人考えでは、同じエクセル上で動作しているので、エクセル関数の計算終了後に、VBAが動くと思いますが。どうでしょうか?

  • ExcelのVBA。public変数の値が消える

    VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。 また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

  • マクロ

    はじめまして。 エンドミルでのポケット溝加工のテストを行っているのですが、X軸を任意の値で動かし連続で加工できるようにマクロを組みたいと思っています。 当方はまだまだ初心者なのでマクロの組み立てに困っています。 よろしければどなたかご教授ねがいます。

  • セルの式をマクロの変数に取り込みたい

    マクロ初心者です セルD5に ='5月(192)'!D18 セルD6に ='5月(192)'!D20のような式が 入っていますこの式をマクロの変数取り込み 5月の部分を 任意の月に書き換えたいのですが良きアドバイスを お願いします。

  • CGI→CGI変数の引き継ぎはどうするのですか?

    初歩的な質問ですがよろしくお願いします。 画面から入力した変数は「GET」などでCGIに値を引き継ぎますが、CGIから別のCGIを起動して最初のCGIでファイルから読み込んだ値や代入された変数を次のCGIに引き継ぐにはどのようにすればよろしいのでしょうか?よろしくお願いします。

    • ベストアンサー
    • CGI
  • エクセル VBAについて。その2

    以前、こちらの掲示板でお世話になった者です。   Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$C$5" Select Case Target.Value Case 1 Range("C6").Value = 24 Range("D5").Value = 600 Range("D6").Value = 0 Range("E5").Value = 400 Range("E6").Value = 0 Case 2 Range("C6").Value = 32 Range("D5").Value = 1000 Range("D6").Value = 0 Range("E5").Value = 500 Range("E6").Value = 0 End Select Case "$D$5" Select Case Range("C5").Value Case 1 Range("D6").Value = (600 - Range("D5").Value) / 25 Case 2 Range("D6").Value = (1000 - Range("D5").Value) / 25 End Select Case "$E$5" Select Case Range("C5").Value Case 1 Range("E6").Value = (400 - Range("E5").Value) / 50 Case 2 Range("E6").Value = (500 - Range("E5").Value) / 50 End Select と、上記のようなマクロがお手伝いしていただいた結果、完成しました。 C5に1を代入した場合 D5 = 600 D6 = 0 E5 = 400 E6 = 0 C5に2を代入した場合 D5 = 1000 D6 = 0 E5 = 500 E6 = 0   C5に1を代入しており、D5の値を500に下げた時 D6 = 4 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) C5に1を代入しており、E5の値を300に下げた時 D6 = 4 (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) <以下、C5に2を代入した時のケースを省略。>   というような意味合いのマクロになったと思いますが、少々困ったことが発生しました。 (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-4 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-4 ) この部分を (D5の値を100下げる毎にD6の値に+4 ) (D5の値を100上げる毎にD6の値に-8 ) (E5の値を100下げる毎にE6の値に+4 ) (E5の値を100上げる毎にE6の値に-8 ) に変更したいのですが、計算式がわかりません(?ω?) どなたかご指導のほどよろしくお願いします。