だるまのエクセルVBA掲示板

申し訳ございません。HPの引越しに伴い、掲示板はやめました。
過去の書き込みの表示のみできるようにしてありますが、新規の投稿は出来ません。
なお、各ページへのリンクは引越し後のHPのアドレスに変更してあります。

■

4年たった

 だるま

URL

データNo:155

2008年07月25日(Fri) 22:22

 

だるまです。

HPを開設してから4年経ちました。
ここまで長く続くとは思っていなかったです。

今後もよろしくお願いします。


■

オブジェクトエラーについて

 ひでお

データNo:149

2008年06月04日(Wed) 12:37

 

Dim sRange As Range
Dim fRange As Range

Workbooks("T-1.xls").Activate

Sheets("@").Select


Set sRange = Workbooks("S-1").Sheets("S1").Range("B2").CurrentRegion.Columns(2)

Set fRange = sRange.Find(Range("B1").Value)



If fRange = "" Then



Range("AD1").Value = fRange.Offset(, -1).Value



fRange.Offset(, 14).Value = Range("D11").Value

fRange.Offset(, 13).Value = Range("D10").Value



End If



Set sRange = Nothing

Set fRange = Nothing


End Sub
上記プログラムを実行すると、オブジェクト変数の登録
、もしくはWITHブロックの変数登録が必要とのエラーメッセージが表示されます。If fRange = "" Then
でとまってしまいます。対処方法を教えていただければ
幸いです。自宅のパソコンでは動作確認できましたが、会社のパソコンで実行すると上記エラーです。

■

Re:オブジェクトエラーについて

だるま

データNo:150

2008年06月04日(Wed) 23:39

 

だるまです。

環境を教えてください。
具体的にはプログラムの動作に必要なファイル(エクセルファイル)とその中にどのようなデータがあればよいのか、それから、OSとExcelのバージョンを教えてください。

で、ちょっとソースを見ましたので、わかる範囲で回答します。

> オブジェクト変数の登録
> 、もしくはWITHブロックの変数登録が必要とのエ> ラーメッセージが表示されます。
ということですが、これは91番のエラーであると思います。

fRange = "" ですが、この記述はよくないです。
fRangeはオブジェクト型であるのに対し""はString型です。
もし、sRange.Findの結果が失敗した(見つからなかった)場合に、If文の中を実行するようにしようとしているのであれば、
If fRange Is Nothing Then
としてください。

■

Re:オブジェクトエラーについて

ひでお

データNo:151

2008年06月05日(Thu) 03:40

 

さっそくの回答ありがとうございます。
OSはXPでExcelは2003を使用しています。
エクセルファイルの中身は数字と文字(漢字)yy/mm/ddの日付程度の内容です。
一覧表で:ファイル名:S-1
A列 B列  C列     D列(商品番号)
1  5/1 06-6666-1111 555555
2  5/2 06-7777-9999 666666
3

申込書 ファイル名:T-1
通番(AD1) 3
電話番号(D10)06-8888-0000
商品番号(D11)777777

結果
A列 B列  C列     D列(商品番号)
1  5/1 06-6666-1111 555555
2  5/2 06-7777-9999 666666
3  5/3 06-8888-0000 777777
           
(B列で空白となったとき通番3を取得し電話番号、商品
番号を貼り付ける。)  
If fRange Is Nothing Thenに変えると今度は変化なしです。

■

Re:オブジェクトエラーについて

だるま

データNo:152

2008年06月05日(Thu) 22:46

 

プログラムがよくわからないです…。自宅でうまくいったというのは本当でしょうか?環境(特にデータ)が違っていたということは無いでしょうか?
(OSやエクセルのバージョンに依存するようなことはないと思います)

> 上記プログラムを実行すると、オブジェクト変数の
> 登録、もしくはWITHブロックの変数登録が必要
> とのエラーメッセージが表示されます。
> If fRange = "" Then
> でとまってしまいます。
 fRangeがNothingであるためだと思います。
その理由は
Set fRange = sRange.Find(Range("B1").Value)
のFindメソッドが失敗(条件に合うセルが見つからない)したためです。

> (B列で空白となったとき 
 まず、ここから考えましょう。
B列で空白となったときですので、B列で空白のセルを探せばよいことになります。

sRangeにはB列全部
fRangeにはB列のうち空白のセル
としたいのであれば、
Set sRange = Workbooks("S-1").Sheets("S1").Columns("B:B")
Set fRange = sRange.SpecialCells(xlCellTypeBlanks)
という感じでどうでしょうか?
※このとき空白セルが2箇所以上(例えばB1とB3,B4)の場合fRangeはそのセル範囲すべて("B1,B3:B4")を指し示します。先頭アドレスを取得したい場合はさらに
Set fRange = fRange.Cells(1, 1)
としてください。
B列に空白セルが無い場合はSpecialCellsにて1004番の実行時エラーが発生します。(On Error ステートメントを使用して実行時エラーを捕まえてください。)

 この後、データをコピーするコードを書いてあげればよいと思います。

■

Re:オブジェクトエラーについて

ひでお

データNo:153

2008年06月05日(Thu) 23:19

 

本当に親切にありがとうございました。
僕にとっては財産となりました。


■

UMTP L3 取得

 だるま

URL

データNo:143

2008年05月17日(Sat) 00:19

 

だるまです。

UMTP L3を取得しました。

 このサイトの間違い(不勉強による間違い)を減らすために、勉強し、取得しました。
 このページの内容が間違っていると、見に来てくれた人に迷惑がかかるから。

■

Re:UMTP L3 取得

さくらさく

データNo:144

2008年05月30日(Fri) 14:56

 

UMTPL3取得、おめでとうございます。
近々受験予定のものなのですが、
差し支えなければ
どのように勉強されたか教えて頂けませんでしょうか。
特に、L3は対策本がないので、
どの本を使って勉強されたか興味があります。
よろしくお願い致します。

■

Re:UMTP L3 取得

だるま

データNo:145

2008年05月30日(Fri) 21:32

 

だるまです。

 すでにUMTP L2を取得されていて、オブジェクト指向について、勉強されているものとして回答します。

 だるまは仕事でバリバリUMLを使用し、さらにオブジェクト指向関連のサイトを作っているので、少しの勉強で合格できたのかもしれません(常に勉強しているので合格できたのかもしれません)。UMTP L3のオープニングセミナー(2008/3/5)に参加したのも合格できた理由であると思います。
 試験範囲については
http://www.umtp-japan.org/modules/examination3/index.php?id=3
を参照してください。ちなみに、モデリングが9割で知識問題が1割という配点です。
 試験結果は
  ・モデリング:67%
  ・知識問題:40%
  ・合計:64%(60%以上で合格)
でした。

 さて、本題のどのように勉強したのかについて答えます。受験にあたり、以下の点を勉強しました。
  ・GRASPパターン
  ・OCL(少しだけ)

参考書籍は、
GRASPパターン⇒実践UML 第3版(ISBN:978-4894716827)
OCL⇒入門UML2.0(ISBN:978-4873113173)
です。
その場でつかえるしっかり学べるUML2.0(ISBN:978-4798012391)
も役に立つと思います。

 それから、オブジェクト指向以前の話になりますが、以下の点については理解しておいた方が良いと思います。
  ・ER図、データの正規化、データ中心アプローチ
  ・モジュールの強度、結合度
   (※GRASPパターンの中に高凝集性パターン、
    疎結合パターンというのがある)

 だるまのページの以下のものも見てもらえるとありがたいです(※注意:ただの宣伝です)。
http://darumaexcel.uijin.com/aboutooa/module_cohesion_coupling.html
…モジュールの強度(凝集度)、結合度について
http://darumaexcel.uijin.com/aboutooa/classD_ERD_classExtraction.html
…ER図とか
http://darumaexcel.uijin.com/aboutooa/regularization.html
…正規化について
http://darumaexcel.uijin.com/aboutooa/grasp.html
…GRASPパターンについて

■

Re:UMTP L3 取得

さくらさく

データNo:146

2008年05月31日(Sat) 02:04

 

ご丁寧な返信有難うございます。
『実践UML』は読んでいたのですが、
『入門UML』は未読でしたので、
読んでおこうと思います。
リンク頂いたページも参考にさせていただきますね。
どうも有り難うございました。

■

Re:UMTP L3 取得

A.T.

E-mail

データNo:147

2008年06月02日(Mon) 10:03

 

通りすがりのものです。
昨日、L3を受験し、知識問題 60% モデリング45%
総合 47%で不合格でした。
だるまさんがお書きの各書籍、参考にさせていただきます。

■

Re:UMTP L3 取得

だるま

データNo:148

2008年06月02日(Mon) 20:02

 

だるまです。

そうでしたか・・・。
モデリング(特にクラス図)が苦手な場合はER図、正規化について勉強した方がいい気がします。
オブジェクト指向と言ってもデータ構造を抽出するとき(メソッドを考えない場合)はER図の作成とそんなに変わらないと思うためです。
ちなみに、上記3つはたぶんオブジェクト指向関連の書籍には載っていません。たぶん、情報処理技術者試験(ソフトウェア開発やデータベース)の参考書籍を見た方がいいと思います。


■

6万

 だるま

URL

データNo:142

2008年05月10日(Sat) 20:12

 

アクセス数が6万を超えました。

いつも同じことを書いていますが、
アクセスありがとうございます。


■

アクセス数が5万を超えました

 だるま

URL

データNo:141

2007年12月27日(Thu) 20:21

 

だるまです。

アクセス数が5万を超えました。

■アクセスしてくれた人へ
ありがとうございます。


<< 前のページ

次のページ >>