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

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


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

検索を繰り返す

検索を繰り返す


after = Find(keyword) //検索の返り値
FindNext(after) //次を検索:検索の返り値を引数にする
FindPrevious(after) //前を検索

検索を繰り返す

特定の範囲を検索する」で、検索の方法について説明しました。
この記事では複数検索にヒットする状況の場合の、繰り返し方法を説明します。

複数の検索条件に合致するセルがあった場合に、次のセル、次のセルと移動する処理を実現するためFindNextやFindPreviousを使います。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
FOR i = 0 TO 3
  EXCEL.ActiveCell.value = "a" + i
  EXCEL.ActiveCell.Offset(1,0).Select
NEXT
After = EXCEL.Range("A1:A10").Find("a")
EXCEL.Range("A1:A10").Find("a").Select
EXCEL.Range("A1:A10").FindNext(After).Select
EXCEL.Range("A1:A10").FindPrevious(After).Select

メッセージを出しながら検索を繰り返す

上記のスクリプトでは、一瞬のうちに処理が完了してしまうので、挙動しているのか確認が難しいです。
次のスクリプトで、メッセージによる処理のコメント、背景色の変更が行われるので、検索の繰り返しがわかりやすく確認できます。
スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

特定の範囲を検索する

特定の範囲を検索する


Find(keyword)

文字列を指定し、検索に合致するセルに移動する

範囲を指定(Range(X:X)し、Findを実行することで、該当キーワードに一致するセルの位置情報を取得できます。

以下のサンプルにおいて、「a」と入力してから、セルの移動を行い、その後でFindで見つけた位置を選択しています。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.ActiveCell.value = "a"
EXCEL.ActiveCell.Offset(10,10).Select
A = EXCEL.Range("A1:J10").Find("a").Select

検索にヒットした箇所の背景色を変えてみる

上記のスクリプトでは、一瞬のうちに処理が完了してしまうので、本当に挙動したかわかりにくいです。
次のスクリプトで、メッセージによる処理のコメントや、検索結果セルの背景色の変更を実施してみます。
これで処理の流れがわかりやすくなると思います。
スクリプトは下記のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

対象セルを含む領域の終端を取得する

対象セルを含む領域の終端を取得する


end(-4121).Address() //下終端セルのアドレス情報
end(-4161).Address() //右終端セルのアドレス情報
end(-4159).Address() //左終端セルのアドレス情報
end(-4162).Address() //上終端セルのアドレス情報

終端を取得する

下記のサンプルでは3 × 3の範囲で値を入力した範囲の終端のアドレスを取得しています

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
FOR A = 0 TO 2
 EXCEL.ActiveCell.Offset(A,0).value = RANDOM(30)
  FOR B = 0 TO 2
   EXCEL.ActiveCell.Offset(A,B).value = RANDOM(30)
  NEXT
NEXT
PRINT "下終端:" + EXCEL.ActiveCell.End(-4121).Address()
PRINT "右終端:" + EXCEL.ActiveCell.End(-4161).Address()
PRINT "左終端:" + EXCEL.ActiveCell.End(-4159).Address()
PRINT "上終端:" + EXCEL.ActiveCell.End(-4162).Address()
NEXT

上記のスクリプトを実行することで、終端の情報が取得できます。
冒頭の例や、サンプルスクリプトではAddressで位置情報を取得していますが、
Selectによる移動、Valueによる値取得も行えます。

30 × 30の範囲で終端のアドレス、値を取得する

上記のサンプルより規模を大きくし、
かつ位置情報以外にもセル移動や値取得をしてみましょう。

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

この投稿の続きを読む »

タグ

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

カテゴリー: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

セルの行や列の位置を取得する

セルの行や列の位置を取得する


Row //行
Column //列

新規ワークブックを追加した際の現在のセルの行や列の位置を取得する

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
PRINT "列の位置:"   + EXCEL.ActiveCell.Row
PRINT "行の位置:"   + EXCEL.ActiveCell.Column

上記のスクリプトを実行することで、結果を確認できます。
ワークブックを新規追加すると、
A1の位置にセルが置かれています。
行は行番号となり、
列の場合はAから採番されているので、対応する数値が返ります。

セルの位置を変更してから取得してみる

上記のサンプルだと、結果がどちらも1となります。分かりやすい様にセルの位置を変えてから、再度取得してみましょう
サンプルは下記のようになります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

XLSHEET

シートの追加/削除
戻値 = XLSHEET( Excel, Sheet名, [削除フラグ] )
引数
Excel
Excel(またはOOoのCalc)のCOMオブジェクト
Sheet名
追加/削除するシート名
削除フラグ
FALSE: シート追加 (デフォルト)
TRUE: シート削除

※OOoのCalcとは・・・Open Office.org 統合オフィスソフトの表計算ソフトCalcを指しています

戻値
TRUE
正常
FALSE
処理不能

EXCELのシートの追加や削除

この関数はPro版のみ使用可能です。
XLOPENでCOMを生成して、シートを指定して制御が可能になります。

下記のように立ち上げたEXCELファイルにシートを3つ追加、削除してみます。

EXCELシートの追加

EXCELシートを追加した状態

DIM SHEET[2] = "UWSC","KOBA","YASHI"


Excel = XLOPEN(,True) //ファイルオープン

MSGBOX("シートの追加します")

FOR KAISU = 0 TO 2
	SHEETNAME = SHEET[KAISU]
	PRINT SHEETNAME + "追加"
	XLSHEET(Excel,SHEETNAME,FALSE)
	MSGBOX(" OK ")
NEXT

MSGBOX("追加したシートを削除をします")

FOR KAISU = 0 TO 2
	SHEETNAME = SHEET[KAISU]
	PRINT SHEETNAME + "削除"
	XLSHEET(Excel,SHEETNAME,TRUE)
	MSGBOX(" OK ")
NEXT

タグ

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

カテゴリー:関数一覧

セルの位置を取得する

セルの位置を取得する


address([列絶対参照、行絶対参照])
//引数はTRUE/FALSEで指定

新規ワークブックを追加した際の現在のセル位置を取得する

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
PRINT "絶対参照:"   + EXCEL.ActiveCell.Address()

上記のスクリプトを実行することで、結果を確認できます。
ワークブックを新規追加すると、
A1の位置にセルが置かれています。
そのため結果が「$A$1」となります。

絶対参照、相対参照でセル位置を取得する

パラメータを利用することで、取得時に絶対参照か相対参照か選ぶことができます

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

ワークシートの追加、ワークシートの選択と名前取得

ワークシートの追加、
および選択と名前取得をする方法を解説します

worksheets.add
worksheets(N).name

ワークシートの追加、選択、名前取得を実行

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
EXCEL.activeworkbook.worksheets.add()
FOR A = 1 TO Excel.activeworkbook.worksheets.count
 PRINT Excel.activeworkbook.worksheets(A).name
NEXT

上記のスクリプトを実行することで、結果を確認できます。

複数のシートを追加し、シート名を変更する

シートの名前は変更することができます。複数のワークシートを処理する以下のスクリプトを見てみましょう。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

既存Excelファイルのオープン(workbooks.open)

Excelファイルが存在する場合に、
そのファイルをオープンする方法を解説します。

workbooks.open
EXCEL.workbooks.open(ファイル)

workbooks.open()

Excelファイルをオープンする

例えばデスクトップにいくつかのExcelファイルが並んでいるとしましょう。

その中の一つ(yes.xls)をオープンします。

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.open("C:\Users\root\Desktop\yes.xls")

上記のスクリプトを実行することで、結果を確認できます。

複数ファイルをオープンする

openを連続してみましょう。

デスクトップに3ファイル(yes.xls、no.xls、unknown.xls)が並んでいる場合
スクリプトは以下になります。

この投稿の続きを読む »

タグ

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

カテゴリー:UWSCとExcel

このページの先頭へ