再計算を実行する

再計算を実行する


Calculate

計算式を再実行する

セルの値を再計算します。

例えば”=Now()”という関数が埋め込まれたセルは現在時間を表示します。再計算を実行することでまた最新の時間に更新されます。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = "=Now()"
MSGBOX("時間を更新します")
EXCEL.calculate

ランダム値を更新する

上のスクリプトでは、時間の経過が確認しずらいかもしれません。
代わりに乱数を使って、いっせいに再更新するスクリプトを実行してみます。
10×10の範囲内に”=RAND()”関数を挿入し、0~1の間のランダムな数が表示されます。
そこで再計算を実行することで、ランダムな値が一斉に変わるようになります。 スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

[ファイルを開く]を表示する

[ファイルを開く]を表示する


FindFile

[ファイルを開く]を表示する

ユーザが指定してファイルを開くようにすることができます。
ファイルを開いた後もスクリプトの作業は継続できます。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.FindFile

ファイルを開いたかを判定する

FindFileはTRUE/FALSEの値を返すので、ファイルを開いたか、開いていないか判定しましょう。
下記のスクリプトのようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

特定の範囲を置換する

特定の範囲を置換する


Find(keyword)

文字列を指定し、検索で合致するセルを置換する

範囲を指定(Range(X:X)し、Replaceを実行することで、該当キーワードに一致するセルの文字列を指定文字列に置換できます。

以下のサンプルにおいて、「おにぎり」と入力し、セルの移動を行い、その後でReplaceで「パン」に置換しています。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = "おにぎり"
EXCEL.ActiveCell.Offset(10,10).Select
A = EXCEL.Range("A1:J10").Replace("おにぎり","パン")

複数の箇所が置換されるか確認する

上記のスクリプトでは、一瞬のうちに処理が完了してしまうので、本当に挙動したかわかりにくいです。
次のスクリプトで、メッセージによる処理のコメントを行い、複数セルの一斉処理が出来るか確認してみましょう
これで処理の流れがわかりやすくなると思います。
スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

色を指定する

色を指定する


Color = 16進数
ColorIndex = 0~56

ColorもしくはColorIndexで色を指定する

Colorは16進数での色指定、ColorIndexはあらかじめ決められた色セットの数値(57色)から選択指定します。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.Interior.Color = $808000
EXCEL.ActiveCell.Offset(1,0).Interior.ColorIndex = 13

ColorIndexの一覧を見てみる

実際はColorで16進数指定する事は煩雑なため、
ColorIndexを使うケースが多いです。
下記のスクリプトでColorIndexの一覧を出力してみましょう。

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

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

ステータスバーを取得/設定

ステータスバーを取得/設定


StatusBar

ステータスバーに文字列を設定、取得する

StatusBarに文字列を設定することで、ステータスバーに任意の文字を表示できます。
ステータスバーにセットした文字を取得することも可能です。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.StatusBar = "ステータスバーにセット!"
PRINT EXCEL.StatusBar

参考に掲載したキャプチャのように、ステータスバーに値がセットできました

処理位置を表示するなど、便利な使い方も

ステータスバーに現在の処理位置を表示しておくことで、
途中でスクリプトが止まっても、どこまで処理したかわかる場合もあります。
UWSCのスクリプトが高速で処理している場合でも、
ステータスバーを活用することで進捗の可視化もはかれます。

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

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとInternetExplorer

繰り返しと条件分岐の組み合わせがうまくできない

いつも勉強させていただいております。 繰り返しと条件分岐の組み合わせについて分からなくなってしまったのでご教授をお願いします。 画面に 貝の写真 か 瓜の写真 があるかないかで条件分岐し、なければチェックを繰り返すというスプリクトを作ったのですがエラーになってしまいます。 どうすれば解決できるのでしょうか?
A= ChkImg("kai.BMP")//貝の写真
B= ChkImg("uri.BMP")//瓜の写真

REPEAT
 if ChkImg("kai.BMP")
  PRINT ”貝写真”

 ELSEif ChkImg("uri.BMP")
  PRINT ”瓜写真”

 ELSE  
  A= ChkImg("kai.BMP")
  B= ChkImg("uri.BMP")
UNTIL  !A  AND  !B
   
    ENDIF
  

タグ

2012年12月15日 | コメント/トラックバック(2) |

カテゴリー:掲示板

オートフィルを実行する

オートフィルを実行する


AutoFill(Rangeオブジェクト, Type)
Rangeオブジェクト・・・Range(範囲)で取得できる範囲オブジェクト
Type・・・連続値の場合は2、最適値の場合は0、日付の場合は5、曜日は6を指定
※数値はxlFillSeriesクラスの定数を指定している

1と入力したセルの下に2、3、4・・・と連続させる

AutoFillメソッドで呼ばれるオートフィルという機能は
Excelでも重宝する機能です。
連続した数値の範囲を選択し、ドラッグすると連続した値を自動で埋めてくれます。
これをスクリプトで実現すると下記のようになります。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = 1  //開始値を入力
RNG = EXCEL.Range("A1:A10") //範囲を取得
EXCEL.ActiveCell.AutoFill(RNG , 2) //連続する値でオートフィル

1に続いて2~10までの値がオートフィルされました。

日付や曜日、適切な値の場合も見てみる

オートフィルのタイプに様々なタイプを指定してみましょう。
サンプルは下記の通りとなります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

UWSCのヘルプが見れない!!

UWSCのヘルプがIEエラーのような状態になって見れません!
古いアプリケーションをWindows 7にインストールすると、
.hlp形式のヘルプファイルが認識されないことがあります。

この現象に関しては、Microsoftのページに回答があります。

WinHlp32.exe は、
“.hlp” の拡張子を持つ32 ビットヘルプファイルを表示するために必要です。
Windows 7 で .hlp ファイルを閲覧するには、
このアプリケーションをインストールする必要があります。

Windows 7 用 Windows Help プログラム (WinHlp32.exe)
http://www.microsoft.com/ja-jp/download/details.aspx?id=91

ということで、
リンクにあるページに進み、適したファイルをダウンロード&インストールすればヘルプファイルは読めるようになります。

※ファイルのDLとインストールはご自身の責任で行ってください。

タグ

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

カテゴリー:Q&A

セル内の値を数式や文字列で取得する

セル内の値を数式や文字列で取得する


Formula //数式
Text //文字列

数式や文字列を取得する

valueの場合、セルに格納されている情報を取得しますが、
数式や、実際に表示されている値を取得する場合には上記の方法を使います。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = "=rand()"
PRINT EXCEL.ActiveCell.Formula
PRINT EXCEL.ActiveCell.Text

数式のまま、あるいは表示文字列で取得できました。

valueとの違いを見てみる

続いて、valueにより取得した値も並べて表示し、違いを見て見ましょう

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

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

IE.navigate2で開いたページの情報取得

利用させていただいてます。 どうぞ教えてください。 既にIEが起動しページがが開いている状況から そのページのURLをIE.navigate2で開きます。(URLが変わります) IE.navigate2で開かられた側の情報取得はどのようにすればいいのでしょうか? IE.document.urlやIE.document.GetElementsByTagName(“A”)では 既に開いているページ情報が入ってきてしまいます。 よろしくお願いします。

タグ

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

カテゴリー:掲示板

このページの先頭へ