+ YOSHIKI & Violet UK FAN SITE -Blind Tears- 管理人の日記 +

Blind Tears管理人こぅきの日記です☆彡
興味ある記事があればコメント・意見等お願いします☆

【Excel VBA】 Filesearchの不具合解消法

2006年06月29日 17時20分34秒 | PC関連
最近、Oracleに関連する投稿ばかりしてましたが、Oracleと同時並行で行っているExcel VBAの開発時において、あるPCのみでエラーが発生する現象にブチ当たり、Webで調べたところ、他にも同じような例があったのですが、解決策が掲載されていなかったので、書くことにします。

不具合の起こったPC
OS:Windows 2000, Excel 2003

以下が、おそらくVBAの不具合が原因だと思われるエラーの起こる箇所です。

With Application.FileSearch
.NewSearch
.LookIn = ThisWorkbook.Path & "..フォルダ名"
.FileType = msoFileTypeExcelWorkbooks
.SearchSubFolders = False
' フォルダ内に適切なファイルが存在するかチェック
If .Execute() = 0 Then
MsgBox "適切なオーダファイルが「オーダ」フォルダ内に存在しません。", vbInformation, "検索結果"
Exit Sub
End If
End With


エラーの内容ですが、Filesearchで検索しに行くフォルダ内のファイルが存在していても、ファイルがないと認識したり、削除したはずのファイルを検索してしまうという内容です。これの原因は、ファイル移動等行った際にOSによりファイルのパスがショートカットとして残されていて、あるタイミングでクリーンにされるのが原因なんじゃないかと思います。同様のバグがこちらにも報告されていますので、リンクします。
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9192.html

色々書いてありますが、結果的な結論は書いてありません。
結論から言えば、Filesearchは使ってはいけません。その代わりに、自分は@ITのこちらのページhttp://www.atmarkit.co.jp/fwin2k/win2ktips/310filelist/filelist.htmlと、このページに掲載されているサンプルVBAプログラムを参考に、以下のように作り直しました。


Dim objFs As Object
Dim objFl As Object
Dim objFld As Object

Dim FoundFileCount As Integer ' 検索ファイル数
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objFld = objFs.GetFolder(ThisWorkbook.Path & "..フォルダ名")

FoundFileCount = 0 ' 初期化
For Each objFl In objFld.Files
If (objFl.Type = "Microsoft Excel ワークシート") Then
FoundFileCount = FoundFileCount + 1
' フォルダ内のExcelを一つずつ開く
Set wb_OrderFile = Workbooks.Open(objFl.Path)
ActiveSheet.Copy before:=DummyWB.Sheets(FoundFileCount)
wb_OrderFile.Close
Label1.Caption = Int(FoundFileCount / objFld.Files.Count * 100)
DoEvents ' ラベル更新のため
End If
Next

If FoundFileCount = 0 Then
MsgBox "適切なファイルがフォルダ内に存在しません。", vbInformation, "検索結果"
OpeningMessage.Hide
Exit Sub
End If
フォームも使うプログラムなんで、ちょこちょこ不要な部分もありますが、要はWindows Scriptを使用するということです。FindFirstFile関数のようなAPIも使用しないし、コーディングが容易にできます。但し、古いPCでこのWindows Scriptが使用できるかどうかは定かではありませんが、少なくとも、Win2000とWinXPでは動作します☆
ご参考になれば幸いです。

Oracle 10g Express で行った設定

2006年06月22日 14時48分51秒 | PC関連

自分のPC内でOracleサーバを立ち上げ、自分のPC内のOracleクライアントで接続するために行った設定等のメモ


1. http://www.oracle.com/technology/products/database/xe/ から無料のOracle 10g Expressをダウンロードし、インストールする。

2. http://www.oracle.com/technology/software/tech/windows/odpnet/ から無料のOralceコンポーネントをダウンロードし、インストールする。インストールする際には、管理者のコンポーネントをインストールする。

3. スタートメニューから「コンフィグレーション及び、移行ツール」内の「Net Configuration Assistant」を実行し、「ローカル・ネット・サービス名構成」→「再構成」を選択した後、サービス名にXEを入力し、接続プロトコルは標準のTCPを選択し、PCのホスト名を入力し終了!!

4. オラクルクライアントインストールフォルダ内の「product10.2.0client_1NETWORKADMIN」フォルダ内のファイルの更新時刻が現在になっていることを確認。

5. 「tnsnames.ora」ファイルの接続記述子がXEになっていない場合は、変更し、保存。




/* --------------------------------------------------------------------------- */
2006.06.23 追記
6. http://otn.oracle.co.jp/tech/dotnet/ からOracle Developer Tools for Visual Studio .NET をDLし、同ページのインストールマニュアル手順に沿ってインストールする。
これで.NETプログラムからアクセスできるようになるようだ。


資生堂TSUBAKI

2006年06月22日 12時55分32秒 | こぅきの日記
資生堂のヘアケア商品「ツバキ」のCM出演者が変わりましたね!!6人中3人が自分の好きな感じの人です♪前のCMよりよっぽどイイ♪自分の好きな相沢紗世さん出てるし、黒木メイサっていう人と香里奈っていう人も綺麗だなぁって思います!HONDAのライフと並んで久しぶりに自分的にイイCMだなと思いました♪

基礎から始めるデータベース入門セミナー

2006年06月22日 11時08分41秒 | PC関連
Oracle社のWebより、抜粋


第12回 Oracleデータベースを構成するファイル
http://www.oracle.co.jp/2shin/no84/o15database.html


第13回 SQL*Plusを使ってみようhttp://www.oracle.co.jp/2shin/no85/o25database.html


第14回 ネットワーク越しにデータベースに接続しよう
http://www.oracle.co.jp/2shin/no86/o35database.html


第15回 いざという時のバックアップとリカバリ(1)
http://www.oracle.co.jp/2shin/no87/o45database.html


第16回 いざという時のバックアップとリカバリ(2)
http://www.oracle.co.jp/2shin/no88/o55database.html


第17回 さまざまなSQL文の処理
http://www.oracle.co.jp/2shin/no89/o65database.html


最終回 オラクルのアドバンテージ
http://www.oracle.co.jp/2shin/no90/o75database.html

VB.NETでOracleと接続する際に使用するフレームワークをOracle社が提供

2006年06月21日 16時32分07秒 | PC関連
高速かつOracle固有の機能を最大限に引き出すODP.NET

「Microsoft OLE DB Provide for Oracle」と、この「Oracle Data Provider for .NET」ってどっち使ったがいいの??
参考URL:http://www.atmarkit.co.jp/fdb/rensai/ora_dotnet01/ora_dotnet01_1.html

ネットで調べてみる限りは、ODP.NETの方がブリッジ(ワンクッション)がなくて速いらしくいいらしい。。。
んでもって、ウチの会社の隣の部の人が言うにも、ODP.NETの方が良いとのこと。

Adobeで公開されたAjaxフレームワーク

2006年06月21日 12時59分56秒 | PC関連
またまた@ITのページを見てて興味深いものがあったんで、紹介します。

記事URL:http://www.atmarkit.co.jp/fwcr/special/ajax_spray/01.html

Ajax使用ページURL:http://www.atmarkit.co.jp/fwcr/special/ajax_spray/archive/link2.1/
↑このページの上段は項目によって、ソート(並べ替え)ができる!!
下段は、RSSリーダや、ヴィジュアル的にオシャレで動的なページの生成ができている!!

凄すぎる!!早く本家-Blind Tears- もAjaxを使用したページにしたい!!

真の無料のデータベース

2006年06月20日 12時58分19秒 | PC関連
無料のDBにはMySQL、PostgreSQL等があるが、いずれも商用になると、ライセンス料が必要となる。さっき@ITを見ててみつけたのが、「FireBird」。Firefoxの昔の名前が載ってるのかと思ったが、firefoxと同じライセンスで使用できるデータベースだった。元々はBorland社の商用データベースをオープンソース化し発展してきたものらしい。商用であれ、無料で使用できるという。日本サイトはコチラから。
http://tech.firebird.gr.jp/

VB6でキーボード入力イベントを取得する

2006年06月16日 10時39分46秒 | PC関連
今開発中の生産管理システムで得た知識の個人的メモ


1. フォームプロパティ「KeyPreview」をTrueにする
2. 以下の関数を定義

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If (KeyCode >= 48 And KeyCode <= 57) Or (KeyCode >= 65 And KeyCode <= 90) Then ' 0~9 もしくは A~Z
Input_Barcode.TextBox_ID(0).Text = Chr(KeyCode)
Input_Barcode.Show
End If
End Sub

これで、キーボードの全て (shift、Ctrl、Alt、これらの組み合わせ、F1~F16までのファンクションキー、Home、End、Esc、BS等) のイベントを取得できる。

また、KeyCodeに割り当てられる定数を調べるには、F2でオブジェクトブラウザを立ち上げ、KeyCodeConstantsで検索する。また、F1でヘルプ出し、KeyCodeで検索した後、複数検索された記事からKeyDownイベントについて書かれている2つめのヘルプ内には、Shift、Ctrl、Altに関するヘルプも記載されている。

※なお、このブログ(goo blog)では、「<」や「>」はタグとして誤認してしまうようなので、上記ソースの該当箇所は全角2バイト文字で記載している。

My Spaceの調子悪くね!?

2006年06月14日 12時32分37秒 | こぅきの日記
最近、YOSHIKIとかViolet UKとかBSBのブライアンのMy Spaceのページ見てて、反応が遅かったり、ページが見れなかったりしてます。。結構アクセス数があるんでしょうか…そんでもって早くも(登録して一ヶ月)mixiの存在価値に疑問を持ち始めてます(^^; mixi更新するより、こっち更新した方がいろんな人に見てもらえてるし。。。mixiは検索する人限られてくるし、ユーザ制限設けるほど迷惑なアクセスもないし、やっぱオープンな方が開放的で好き!!(意味不明)

しっかし、最近はご飯食べようとすると、やったらムカツク。胃がムカツクんじゃなくて、精神的にイライラすんですよね~参ったなぁ。。そろそろ会社サボる時期がやってきたのかも!(定期的にサボり癖が出てくる性格なのです) 今月中には一回サボろうかにゃ~♪♪夏は暑くて好かん!!早くおれの大好きな秋になってくれ~!!

YOSHIKI!!何のオーディションだよっ!!

2006年06月12日 12時53分49秒 | YOSHIKI関係
現在、帰国中のYOSHIKIですが、なんとavexのオーディションに審査員として参加していたらしいです!!(mixi情報)
ったくそんなとこで何やってんですか!?avexはマネージメントだけじゃなくて音楽活動の方でも関係してるんですか!?コロムビアやめてavexからリリースですか!?Ymにもっと詳しい行動載せて下さい!!