Excel VBA質問スレ Pa ..
[2ch|▼Menu]
522:非508
09/04/01 20:12:53
落としたやつを動かしてみたが、枠線とか背景色とかをいじってる所が遅くなるようだ。
セルでなくシートを削除して、新しいシートで実行すると速度が変わらないので、Excelの仕様の問題かと。
シートの中に何か覚えている部分があるんだろう。

523:デフォルトの名無しさん
09/04/02 00:40:12
>>521、522
ありがとうございました。

その後、メモリの消去の命令とかいろいろ追加してみましたが、やっぱり駄目でした。
仕様ということであきらめてみます。
お見苦しいところを、多々お見せして、申しわけありませんでした。


524:デフォルトの名無しさん
09/04/02 01:45:51
>>523
upし続けてくれる?
直ぐ消すと
見てくれる人も見てくれないよ

525:デフォルトの名無しさん
09/04/02 20:01:17
開放する命令を出さないとダメだぞ。

526:デフォルトの名無しさん
09/04/03 00:36:17
open ?

527:デフォルトの名無しさん
09/04/03 01:45:48
初心者なんですが質問をさせてください。
ワークシートのセルに関数を入れて

 4(=index(〜)とかで4になったもの)
n = ↑のセル
range("a1")=n

とかにするとa1には=index(〜)がそのままはいってしまって。
値(この場合4)にしたいんだがどうすればいいか教えてください。説明が下手で申し訳ありません。

528:デフォルトの名無しさん
09/04/03 01:59:19
自己解決しました。
マクロの記録でコピペして値のみでできました。
もし他にも方法があったら教えてください。

529:デフォルトの名無しさん
09/04/03 02:06:10
ここって日本の掲示板だよな?
あまりにも日本語の質問が少ないんで
何処か日本以外の国の掲示板に迷い込んだのかと錯覚する…

530:デフォルトの名無しさん
09/04/03 04:30:14
自然言語がちょっと乱れた程度で外国語と間違えそうになるなんてすごいです。
尊敬します。先生と呼ばせてください。

ところで先生は文末に約物だけを付けるのは正しい日本語とみなす派なんですね。

531:デフォルトの名無しさん
09/04/03 04:34:51
どうしたの?

532:デフォルトの名無しさん
09/04/03 07:05:43
自分で不自由て自覚あるみたいだから好きに呼ばせておけばいいよ

533:デフォルトの名無しさん
09/04/03 19:57:19
4(=index(〜)とかで4になったもの)

もうね。メタ文字が入ってると、どんなパターンなのか考えてしまってダメだわ。


534:デフォルトの名無しさん
09/04/04 01:52:17
日本語でOK

535:デフォルトの名無しさん
09/04/04 15:28:15
>>527-528
だいたい俺んとこじゃそういうふうにならないんだが。
仮にC1に=INDEX(D:D,4)となってて
n=Range("C1")
Range("A1")=n
と.Valueを省略して書いてもA1には値が入るぞ?

536:デフォルトの名無しさん
09/04/04 16:16:24
かつてoffice2003で作ったxlsファイルでVBAを組んだのですが
それをoffice2007のxlsxで開こうとするとエラーになってしまいます。
もちろん保存するときにxlsで保存すれば開けるのですが。

xlsで作ったVBAはあくまでもxlsファイルでしか開けなく
互換性はないのでしょうか?

537:デフォルトの名無しさん
09/04/04 16:55:47
>>536
マクロ付きの場合、xlsxではなくxlsmになる。
名前を付けて保存のダイアログのファイルの種類のところから、それ選べ。

538:デフォルトの名無しさん
09/04/05 09:46:08
ボタンが一個置いてあり、その下に、数字がはいった二つのセル(仮にセルA、セルBとする)がある。
で、ボタンを押すと、別シートの表の中からセルAと一致
するセルをもつ行のうち最初にみつかったセルの1マス右側のセルにセルBの内容を書き込む・・・

というようなことをVBAでやりたいのですが、
単純化したサンプルでいいんでどういうコードになるか教えていただけませんか

539:デフォルトの名無しさん
09/04/05 10:28:13
オートシェイプにMouseMoveとかのイベントはありませんか?

オートシェイプ上にカーソルが移動すると
オートシェイプに合わせたデータを表示する
というのプログラムを組みたいのですが

540:デフォルトの名無しさん
09/04/05 10:32:32
>>538
With Sheet2
.Range(.Cells(1, 1), .Cells(10, 1)).Find(what:=Sheet1.Cells(1, 1)).Offset(0, 1) = Sheet1.Cells(2, 1)
End With

Sheet2が別シート、Sheet1がボタンがあるシートな。


541:デフォルトの名無しさん
09/04/05 11:04:03
>>540

ありがとうございました。
ちなみにセルAとセルBじゃなくて、
列Aと列Bだったとして、
列Aの内容と一致するデータを別シートから検索し、右隣のセルに列Bの
内容を書き込む、みたいな場合はどうなるんでしょうか

542:デフォルトの名無しさん
09/04/05 11:11:31
丸投げよくない

543:デフォルトの名無しさん
09/04/05 11:48:36
>>539
シェイプ系には無い
ActiveXオブジェクトには有る

矩形で良いならコントロールツールのイメージオブジェクト使うのが手っ取り早い
凝った形が良いならActiveXオブジェクト作って取り込めば良い

544:デフォルトの名無しさん
09/04/05 12:38:49
>>539
無い。けど、マウス座標からObject位置判定を自前でやれば同じことはできる

できたとしても、定義済みシェイプを使う方法が面倒だと思う
シェイプと情報をうまく自動リンクさせる手法の方が難しいと思われ

545:デフォルトの名無しさん
09/04/05 13:58:18
デフォルトプロパティって書くべきなんだよな?

546:デフォルトの名無しさん
09/04/05 13:59:21
関数だと必ず()にして表記したほうがわかりやすいよな
仕事としての意味で

547:デフォルトの名無しさん
09/04/05 14:25:50
>>451
非表示シートって表示できるの?
矛盾した質問で申し訳ない

548:デフォルトの名無しさん
09/04/05 15:16:03
セルの値を二元配列に組み込みたいのですが、
簡単にする方法はありますか?
data(0, 0) = A1.value
data(0, 1) = A2.value
data(1, 0) = B1.value
data(1, 1) = B2.value
data(1, 2) = B3.value
のように一度に格納したいのです

549:デフォルトの名無しさん
09/04/05 15:21:55
>>547
出来ない理由でも?

550:デフォルトの名無しさん
09/04/05 16:05:28
>>548

Dim ary As Variant

ary = Range(Cells(1, 1), Cells(3, 3)).Value

これで配列に入る。
添え字は1始まり。

551:デフォルトの名無しさん
09/04/05 16:11:28
>>550
ありがとうございます

552:デフォルトの名無しさん
09/04/05 17:01:28
>>549
拾ってきたソースで非表示シートに値を入れてるのがあって
それを目で追うために見えるようにしたかったんだよ

553:デフォルトの名無しさん
09/04/05 17:11:41
表示できない場合、うっかり非表示にしちゃったときどうするんだ

554:デフォルトの名無しさん
09/04/05 17:16:02
>>545
保守的には書いたほうが良い。書くべき。
けど、VB6に限れば書かない方が速度が速い。もしかしたらVBAも・・・?
まあ、所詮Excelなんで筋違いか。2008は知らん。

555:デフォルトの名無しさん
09/04/05 17:26:50
どこぞのサイトに書く場合と書かない場合の計測結果があったな

556:デフォルトの名無しさん
09/04/05 18:06:51
書いた方がわずかに早いけど、そこまでスピードにこだわる処理にVBAは向いてない気が

557:デフォルトの名無しさん
09/04/05 19:43:34
質問です。
Variantに複数のRangeを代入した際の動きって
どこかにドキュメントとかありますか?
いまいちアレが配列になる理由がわからない。

558:デフォルトの名無しさん
09/04/05 19:57:49
>>557
どゆこと?

559:デフォルトの名無しさん
09/04/05 20:06:05
それは代入以前の問題だろ

君は複数範囲のRangeオブジェクトのValueプロパティが、配列を返すってことを理解してないだけじゃん。
変数は単にValueプロパティが返した値をそのまま保持しているだけで、Variant型変数に代入したときに
何か変換とかが行われてるわけじゃないし。

560:デフォルトの名無しさん
09/04/05 20:09:38
>>557
variantでメモリを確保します
最低16バイトです
そこに配列の値を入れていきます。増えたらVariantが確保してるメモリ量も増大します
終わり

多分可変長ってところでひっかかてるんじゃないかな

561:デフォルトの名無しさん
09/04/05 20:51:12
>>558,560
複数のRangeといったのは、下記のような代入です。
Dim var as Variant
var = [A1:B3]

なんでvarに配列が入るのか不思議だったので聞きました。
(普通に先頭要素の値が文字列として入ると思っていたから)

>>559
うーん、そういうExcelのCOMの作り方であって、
別にVBA的な何かというわけではないのですね。

デフォルトプロパティの動作についてドキュメントないのかな。
CVarでも動作同じなのかな。

562:デフォルトの名無しさん
09/04/05 20:53:46
つまり勘違いしてただけか

563:デフォルトの名無しさん
09/04/05 21:32:03
Range型に不用意にVariantを使用しない。後で意味が分からなくなる。
デフォルト云々の前に、Variantは不定形型ということを理解すべき。

564:デフォルトの名無しさん
09/04/05 21:38:54
range == stringの認識も改めたほうがよさそだね

565:デフォルトの名無しさん
09/04/05 22:45:48
>>563
なにいってんの?ばか?

566:デフォルトの名無しさん
09/04/05 22:46:10
>>564
を見てふと思ったんだけど、
やっぱり比較演算子と代入演算子が同じってのは分かりにくいよね。

>>563
ユーザー定義関数なんかで、セル指定or文字 を引数で使うみたいに、
明確にvariantじゃなきゃ条件分岐がしっかり出来ないって用途は限定されるしね。
まぁ、そんな目的だとしてもTypenameあたりでしっかりと何型が入ったかを判定させるべきだと思う。
入れっぱなし、とりあえず問題なく動くからOK。って作り方はわしゃ好まん。

567:デフォルトの名無しさん
09/04/05 23:10:16
VBAでカレーライスって作れますか?

568:デフォルトの名無しさん
09/04/05 23:12:10
>>567
外部マイコンをVBAで制御すればできる
もちろん、マイコンでカレーライスが作れるように設定しておいてくれ

569:デフォルトの名無しさん
09/04/06 00:27:07
だがそれは、はたしてVBAで作ったことになるのだろうか?

570:デフォルトの名無しさん
09/04/06 00:41:36
『パソコンはC言語で動いてる』の考え方次第じゃない?
目に見える結果にプログラミング言語は限定されないと思う
しいて言うなら、カレーライス製造装置の制御ソフトの大半がVBAなら、VBAで出来てるといえるのでは?
最悪、かーちゃんにメールするだけでも成立しそうだが

激しくスレチ乙

571:デフォルトの名無しさん
09/04/06 00:44:00
なるよ

572:デフォルトの名無しさん
09/04/06 01:05:33
「パソコンで年賀状作った」
「それはプリンタに作らせただけだろう」
みたいな話か

573:デフォルトの名無しさん
09/04/06 06:53:16
最後にちょっと国内で加工すれば国産になるのと同じ道理ですな

574:デフォルトの名無しさん
09/04/06 21:04:10
>>563は何か勘違いしてるの?
セルの値の配列をいっぺんに入れるならVariant型しかないじゃん。


575:デフォルトの名無しさん
09/04/06 21:38:27
Range.Value()の代入先がVariant()型に限るってのもVBAの妙な仕様の一つだよな。
別にDouble()やString()を許容してくれてもよさそうに思えるのに。

576:デフォルトの名無しさん
09/04/06 22:02:15
プロパティの定義が
Value As Variant
なんだから、妙でもなんでもなく当然だろ?

というか、配列じゃないときに変換関数も通さず別型の変数に代入できてしまう方が妙だ。
自動型変換なんてのは行われないのが普通だからね。

VB6以前やVBAにどっぷりハマっていると、自動型変換されるのが当然で、プロパティの戻り値を
プロパティの型とは別型の変数に代入できないという当たり前のことが不自然に感じてしまうものなのか?

577:デフォルトの名無しさん
09/04/06 22:22:28
ならばセルに数値が入ってる時TypeName(Range("A1").Value)ってやると
Doubleが返ってくるのをやめてほしい。
Range("A1").ValueTypeみたいなデータ型を調べるプロパティを用意すべき。

578:デフォルトの名無しさん
09/04/06 22:39:47
>>577
オブジェクト指向を一から勉強し直せ

579:デフォルトの名無しさん
09/04/06 22:40:13
>>577
それはTypeNameが内部型を返すという仕様通りの結果だろ?
結局全てに置いて理解が浅いだけの話じゃん。
そして問題点を指摘しているのではなく、「俺の妄想通りに動かない」とブー垂れてるだけ。
ホント、どうしようもないな。

580:デフォルトの名無しさん
09/04/06 22:53:11
じゃあ問題なのは一部の演算子で自動的に型変換が行われてしまうってこと?
VBAだと暗黙の型変換を禁止する方法ってないよね?

581:デフォルトの名無しさん
09/04/06 22:55:04
>>580
何いってんの?馬鹿なの?

582:デフォルトの名無しさん
09/04/06 23:11:21
>>580
それ、結構重要だと思うわ
最近のスクリプト言語でも思う
勝手に型変換して書いたソースをなんとか動く形に解釈してしまうのは
俺もダメだわ

583:デフォルトの名無しさん
09/04/06 23:20:39
単純な変数への代入だと勝手に型変換してくれるのに
配列への代入だと型変換してくれない。
なんで統一してくれないの?

584:デフォルトの名無しさん
09/04/06 23:22:08
VBAは中途半端に型があるからなぁ
VBSみたいに、もう型なんてバリアント以外禁止!にすればよかったんだよ

実行環境が勝手に型変換するのは、勝手に型変換するコードを書くからなんだがな
それは問題なんじゃなくて、そういう言語だと理解して使うしかない


585:デフォルトの名無しさん
09/04/06 23:25:23
>>577
それって意味あるの?
ValueTypeプロパティがあったとして、
VarType/TypeNameが廃止なら、現状のVarType/TypeNameと何も変わりない。
見た目が変わるだけ。

一方、VarType/TypeNameが存在するとしたら、そっちは何をするんだ?
例えば、Variantであるという戻り値なら、そんなものソースコードを見れば自明だ。
ほかの方法は思いつかない。まさかValueTypeと同じとは言わないだろうし。

586:デフォルトの名無しさん
09/04/06 23:30:16
「variantの使い方は気をつけよう」でおk?

初心者はよく勉強すること
熟練者は的確なスレをすること
反論だけのキチガイはスルーすること

587:デフォルトの名無しさん
09/04/06 23:33:36
スレをする?

588:デフォルトの名無しさん
09/04/06 23:40:27
Variantはまだいい方。
一番わかりにくいのはRangeオブジェクトだと思う。
よく使われることを想定したためか、かなりの省略が許容されているおかげで誤解も多い。

589:デフォルトの名無しさん
09/04/06 23:46:17
別に解りにくいなんて思ったことは無いけどな
理解度が低かった初心者の頃以外は

590:デフォルトの名無しさん
09/04/06 23:59:16
EntireRowとかのRow自体のRangeとか、
結合セル時のOffsetとか、Find・FindNextとかはわかりづらいと思った。

591:デフォルトの名無しさん
09/04/07 00:10:04
理論的な思考が出来る人なら問題にはならないけどね
結局は個人の問題

592:デフォルトの名無しさん
09/04/07 00:15:09
んなアホな

593:デフォルトの名無しさん
09/04/07 00:24:04
まあ出来ないうちはそう思うのは仕方ない
解ってみれば単純な物だが

594:デフォルトの名無しさん
09/04/07 00:26:06
うゎ、こいつうぜ

595:デフォルトの名無しさん
09/04/07 00:31:57
ここはヒトの理解というものについて考察するスレじゃないというのは、
論 理 的な思考が出来る人なら問題にはならないけどね。

596:デフォルトの名無しさん
09/04/07 00:36:17
悔しかったの?

597:デフォルトの名無しさん
09/04/07 00:39:06
Cellsの使い方がおかしい奴は多いねぇ。
Set r = Range("a1:b5")
r.Cells(2,1).hogehoge
なんてやつ見るとアフォかと。

598:デフォルトの名無しさん
09/04/07 00:40:46
なにやってんのそれ?w

599:デフォルトの名無しさん
09/04/07 00:49:29
やってることはどうでもRange("a1:b5") がセルの集合だからCellsを使うのはおかしいってこと。

600:デフォルトの名無しさん
09/04/07 00:58:52
>>599
ただの相対参照じゃねーの?

601:デフォルトの名無しさん
09/04/07 01:07:32
>>597
複数セルに対するCellsで第二引数まで指定するのは確かにおかしいが
やってる奴は滅多に見ないぞ

複数セルに対するCellsで第一引数のみの指定や
単一セルに対するCellsで第二引数まで指定するのならよく見るが、これらはちゃんと意味有るし

前者は範囲内、若しくは範囲の延長上で右下方向に何番目のセルという指定で
Range("A1:E5").Cells(12)なら、A1:E5の5行5列範囲で右下方向12番目ということで
1  2  3  4  5
6  7  8  9  10
11 12
のような感じで3行2列目のB3を返す

後者はOffsetの初期インデックス違いのようなもので、Offsetが0始まりなのに対して、Cellsが1始まり
Debug.Print Range("A1").Cells(3, 3).Address(0, 0)
Debug.Print Range("A1").Offset(2, 2).Address(0, 0)

因みに前者のような使い方があるので、「(親が)セルの集合だからCellsを使うのはおかしい」って言い方は不適切だな

602:デフォルトの名無しさん
09/04/07 01:35:18
問題は、RangeもCellsもRangeオブジェクトを返すのに、その明確な
使い分けができてないことだろ

603:デフォルトの名無しさん
09/04/07 01:40:10
使ってればそのうち使い分けられるようになるさ。

604:デフォルトの名無しさん
09/04/07 01:54:34
いや、たしかに自然と使い分けてるんだが、
問題としては、使い分けの方法ってか、指針を説明できないってことなんだ

今だから白状するが、俺は初心者の頃は、Cellsは単一セルそのものを返してると思ってた
まあ、だからRangeとCellsの使い分けはあんまり悩まなかったが、かといって
範囲が1×1のレンジ操作はCells使えってのも、なんかちょっと違う気がする

605:デフォルトの名無しさん
09/04/07 09:06:00
>>597がおかしいのは
r.Cells(2,1).hogehoge じゃなくて
rItem(2,1).hogehogeとかr(2,1).hogehogeって書けって意味だよ。
r.Cells(2,1).hogehoge ってr.Cells.Item(2,1).hogehoge の意味だけどセルの集合にわざわざ再度Cellsを使うのは無駄ってもんだ。
例えばCells(2,1)もCells.Cells.Cells(2,1)も同じセルををさすが、動けばいいってもんじゃねーからな。
EntireRowとかのセルの集合じゃないものにCellsを使うのは意味があるが>>597ではCellsは無意味だね


606:デフォルトの名無しさん
09/04/07 09:19:44
r.Cells(2,1).hogehogeがr.Cells.[_Default](2,1).hogehogeの意味だって突っ込みは無しよ。

607:デフォルトの名無しさん
09/04/07 11:41:21
>>605
デフォルトプロパティを省略するなって議論が上の方にあったな
だが実際問題、Cells.Item(2,1)なんて書かないなぁ
デフォルトプロパティがインデクサとして作用するなら普通みんな書かないんじゃない

まあ、そのせいで、Cells(2,1)はプロパティ取得じゃなくて、
Cellsというメソッドを2と1という引数で呼び出してると勘違いしてる時期があった

VBAの入門書とか、そのへんちゃんと解説してるようなのはほとんどないと思う
ちゃんとしたコード読まないと、ちゃんとしたコードかけるようにならないってことだな

ただ、Range.RangeとかCells.Cellsとかは感覚的におかしいと思うんだが
Range.Cellsは感覚的におかしいと思わないんだよなぁ

608:デフォルトの名無しさん
09/04/07 13:12:17
>>607
Excel95の頃はCellsはメソッドじゃなかった?
中身は実質変わってないのかな?

609:デフォルトの名無しさん
09/04/07 15:27:47
ソース見てRangeがオブジェクトかプロパティかわからない俺参上
Range("A1") = "abc"
たとえばこれはオブジェクトでデフォルトプロパティのValueが省略、でいいの?

610:デフォルトの名無しさん
09/04/07 15:52:48
Rangeはオブジェクトを返すプロパティだよ

611:デフォルトの名無しさん
09/04/07 17:35:05
EXCEL2003です

セルの書式設定の[表示形式]定義が[文字列]かどうか
判断する方法を教えて下さい。
やりたい事は「日付を表すデータ」([表示形式]が[日付]とは限らない)が
元々どのように入力されているか判断したいのです。
具体的には、
文字列で「3/1」、「2009/3」「2009/3/1」と入力されて
いるのか、日付データで「2009/3」等と入力されているのかの
判断方法は、どうすれば良いかということです。

よろしくお願い致します。






612:デフォルトの名無しさん
09/04/07 17:40:30
>>611
NumberFormatLocal

613:デフォルトの名無しさん
09/04/07 22:14:32
文字列で"0.1"とか"1"をDoubleに変換したいです。
且つ、"abc"のようなものなら失敗して欲しいです。
CDbl()でよいと思うのですが、"abc"などを渡した場合どのように失敗を通知してくれるのでしょうか?
例外などですか?このときの例外の補足の仕方を教えていただけますか?
宜しくおねがいします


614:デフォルトの名無しさん
09/04/07 23:24:36
On Error GoTo xxxx
でエラートラップ
Err.Numberでエラーの種類しらべてしかるべき処理

はっきりいってVBAのエラー処理はおまけみたいなもんだ
変換してエラーでる可能性があるとわかってるなら、
変換する前に変換元が数字かどうかぐらい自分でチェックするほうがいいと思うぞ


615:デフォルトの名無しさん
09/04/07 23:34:04
>>614
それは他の言語とどこが違うの?

616:デフォルトの名無しさん
09/04/07 23:41:15
>>614
ありがとうございます。m(_ _)m

アドバイス助かります。自分でエラーチェックすべきか、
オブジェクトの例外スローに期待すべきかも悩んでました。
とりあえず試してみます。
例外が送出され、それを捕らえて上手くメッセージが出せたらそれに越したことはないものですから。。



617:デフォルトの名無しさん
09/04/08 03:42:55
>>615
エラー処理ルーチンにうつった場合の、それ以降の処理が非常にややこしくなるんだ
まあ、詳しくは構造化エラー処理あたりでぐぐってみてくれ

で、613はJava系のプログラマか?
VBAで例外スロー、キャッチとか考えんほうがいいぞw


618:デフォルトの名無しさん
09/04/08 03:50:08
つーか、IsNumericじゃダメなの?

619:デフォルトの名無しさん
09/04/08 06:07:31
IsNumericかregexを使う

620:デフォルトの名無しさん
09/04/08 10:11:12
vbのエラー処理ってこんなかんじだったかな

1:
on error resume next
(処理)
if err.number = xxx then

end if
on error goto 0

2:
on error goto eh
(処理)
exit sub/function
eh:
(errで分岐したり処理したりする。resume next で戻ることも出来るが、大体はそのままプロシージャを抜ける。)

621:デフォルトの名無しさん
09/04/08 10:15:33
負の日付を判断する関数ってあります?
もしくは負の日付か判断する方法があったら教えてください

isDate(負の日付)や変数 = 負の日付とかするだけでエラーに飛んでしまって・・・

622:デフォルトの名無しさん
09/04/08 13:07:38
まず、負の日付の定義についておしえてくれ


623:デフォルトの名無しさん
09/04/08 13:45:02
1899/12/29以前ってことか?
俺のとこじゃDate型の変数にCdate("1872/8/13")を入れてMsgBox IsDate(変数)とすりゃTrueだけどな。
直にMsgBox IsDate(-10000)だとFalseだが。
エラーにはならんな。

624:デフォルトの名無しさん
09/04/08 14:07:01
>>622-623
説明不足でもうしわけないです
表示形式が「日付」のセルに、例えば9999999999って値を打つと
####と表示され、マウスカーソルをあてると「負の日付または時間は####と表示されます。」
と出てきまして、そこの値をvbaの方で参照しようとして落ちているという状況です
(日付型のとこには0〜2958465以外の数値だと日付シリアル対象外でこうなるようで・・・)

関数があれば〜と言いましたが、代入するにしろ引数にするにしろ、
参照した時点で落ちてるので関数があっても意味がないと思い、
結局エラーに行かせた先で判断するようにしました

どうもありがとうございました

625:デフォルトの名無しさん
09/04/08 14:19:05
>>624
Value2プロパティが2958465以下かで判断する方法もあるかもね。
ValueプロパティだとオーバーフローのエラーだがValue2だとオーバーフローしないから。

626:デフォルトの名無しさん
09/04/08 14:59:38
>>625
知らないプロパティだったんで早速調べてみたんですがこれで行けそうです!
>>625氏の言うとおりの方法で範囲外なら無効な日付とメッセージを出すようにしてみました

出来ればエラーに飛ばしたくないと考えていたので助かりました
どうもありがとうございます!


627:611
09/04/08 17:37:10
>612
レスありがとうございます


628:デフォルトの名無しさん
09/04/09 00:08:50
EXCELファイルがどのバージョン(EXCEL97、2000、2003)で
作成されたものか調べる方法を教えてくれ神ども。

629:デフォルトの名無しさん
09/04/09 05:48:16
拡張子は?


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4842日前に更新/170 KB
担当:undef