SELECT文のカンマによる複数表記可の意味は?

HELP(Ver 4.8b)にあるSELECT文の『カンマによる複数表記可』の意味が分かりません。何を意味していますか?
結論として、『カンマによる複数表記』は演算子『OR』として使えるようです。

コード例

cnt = input("1ケタの数値を入力してください")

select cnt
case cnt = 1, cnt =3, cnt =5, cnt =7, cnt =9
print "奇数"
case cnt = 2, cnt =4, cnt =6, cnt =8
print "偶数"
default
print "1ケタの数値を入力してください"

SELEND
『AND』ではなく、『OR』として機能する点に注意ですね

タグ

2013年4月2日 | コメントは受け付けていません。 |

カテゴリー:Q&A

ワークブック名、シート名を取得・選択する

ワークブック名、シート名を取得・選択する


ActiveWorkbook.name
ActiveWorksheet.name
Sheets.count
Sheets(N).Select

ワークブック名、シート名を取得・選択する

ワークブックの名前やシートの名前をNameで取得することが出来ます。
またSheetsオブジェクトに対してCountをすることでシート数を取得できます。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
PRINT "ワークブック名:" + EXCEL.ActiveWorkbook.name
PRINT "ワークシート名:" + EXCEL.ActiveSheet.Name
PRINT "シート数:" + EXCEL.Sheets.count
sName = EXCEL.ActiveSheet.Name
EXCEL.Sheets(sName).Select

全てのシート名を取得する

上のスクリプトで、ワークブック名、ワークシート名、シート数を取得できました。
これらのパーツを組み合わせて、現在選択しているワークブックの全てのシート名を取得、選択してみましょう。
下記のスクリプトのようになります。

この投稿の続きを読む »

タグ

2013年1月6日 | コメントは受け付けていません。 |

カテゴリー:UWSCとExcel

セルを絶対移動、相対移動する

セルを絶対移動、相対移動する


Range(セル位置).Select //絶対移動(例:A100、AC32)
ActiveCell.Offset(行, 列).Select //現在位置から相対移動

セルを移動してみる

絶対移動で行のアルファベット、列の数字を組み合わせたセル位置を入力し、Selectすることで該当場所へ移動できます。
ActiveCell.Offsetで行の数字、列の数字を入力し、Selectすることで該当場所へ移動できます。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
//絶対移動
EXCEL.Range("A30").Select
//相対移動
EXCEL.ActiveCell.Offset(1,2).Select
NEXT

上記のスクリプトを実行することで、セルの移動結果を確認できます。
まずはA30の位置に移動、
そしてそこから下行に1つ、右列に2つ相対移動します。

セルの位置を確認しながら実行する

上記のサンプルだと、一瞬のうちに移動してしまうので確認がしづらいです。
分かりやすい様にメッセージを出しながら実行してみましょう。

スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

2012年11月14日 | コメントは受け付けていません。 |

カテゴリー:UWSCとExcel

SELECT-SELEND

SELECT-SELEND

値を複数の条件で比較して、それぞれに条件一致する場合の処理を実行させる
SELECT 値
CASE 条件1
処理1
CASE 条件2
処理2
CASE 条件3, 3′
処理3
・・・・・
[DEFAULT]
[DEFAULTの処理]
SELEND

・値・・・比較される値や式を指定
・条件・・・比較する値や式を指定、カンマで複数指定も可能
・処理・・・値が条件に一致した場合に行う処理を記述
・DEFAULT・・・いずれの条件にも合致しなかった場合の処理を記述

IFB-ELSEIFよりも簡単に記述する

例えば、ある変数に1~5の値が入っているとします。
続いての処理で、1の場合はある処理を、2の場合はこういう処理を
3の場合は、4の場合は、5の場合は、それ以外の場合は・・・。
という処理を実現したい場合、まず浮かぶのはIFBとELSEIFの組み合わせだと思います。
しかし、SELECT-SELENDを使うともっとスマートに以下のように記述することができます。

//1~5の値をランダムに代入
VALUE = RANDOM(5) + 1

SELECT VALUE
 CASE 1
    PRINT "1が出たぞ"
 CASE 2
    PRINT "2出た"
 CASE 3
    PRINT "3出たぞ"
 CASE 4
    PRINT "4だぞ"
 CASE 5
    PRINT "5みたいだ"
 DEFAULT
    PRINT "違う数だな"
SELEND

SLCTBOXとの組み合わせが吉

選択ダイアログボックスを出すSLCTBOX関数があります。
この関数の戻り値は、選択したボタン(SLCT_1~)です。
これをSELECT-SELENDと組み合わせれば、
以下のようなスクリプトが完成します。
セレクトボックスを表示し、押下したボタンによって
表示メッセージを変えるスクリプトです。

この投稿の続きを読む »

タグ

2012年8月5日 | コメントは受け付けていません。 |

カテゴリー:構文・制御文

このページの先頭へ