Visual Studio 2008 Service Pack 1 を当てると、IntelliSense(メソッドや変数等の補完機能)で表示されるテキストが英語になる場合があるという問題のパッチが出ています。
出たのは結構前の話ですが。
[FIX] Microsoft Visual Studio 2008 Service Pack 1 の英語以外の言語バージョンをインストールした後、ローカライズされた一部の IntelliSense テキストが英語に戻ることがあるにて修正パッチの案内が出ています。
Visual Studio 2008上だけでなく、SandCastle 等でドキュメント生成する際にも英語になってしまったりとそれなりに影響が出てしまっている模様。Serveice Pack はそれなりに有名なのでいいとしても、こういうちょっとマイナーそうな問題についてはもうちょっとアピールして欲しいものです。
Excel マクロでの検索処理です。
Excel のヘルプ(VBの方)の使用例に少し手を加えたものです。
ソースコード中のコメントでも記載してありますが、検索にヒットするセルが1つしかなく、そのセルが結合セルである場合、ヘルプの使用例のままでは、FindNext の結果が Nothing になるため、Loop While ~ の行でエラーになります。検索にヒットするセルが2つ以上あったり、ヒットするセルが1つでもそのセルが結合セルでなければ問題ありません。
FindNext メソッドは、検索範囲内の最後のセルまで検索すると、検索範囲の最初のセルに戻って再検索を行うため、検索にヒットするセルが1つしかない場合は、同じセルがひたすらヒットするはずなのです。それなのに検索にヒットするセルが1つしかなく、それが結合セルの場合には、再度同じ結合セルが検索にヒットするわけでなく、なぜか Nothing になります。この挙動を本来の FindNext の挙動に合わせるように手を加えています。
ソースコードは以下の通り。
なお、検索結果は該当範囲の左上のセルの位置をイミディエイトウィンドウに出力しています。
Option Explicit Sub test() Dim find_range As Range '検索範囲 Dim find_value As String '検索する値 Dim find_cell As Range '検索でヒットした範囲 Dim prev_find_cell As Range '前回の検索でヒットした範囲 Dim findAddress As String '範囲参照値 Set find_range = ActiveSheet.Range("A1:F5") '検索範囲 find_value = "あ" '検索する値 With find_range Set find_cell = .Find(find_value, LookIn:=xlValues) If Not find_cell Is Nothing Then findAddress = find_cell.Address Do '検索されたセルの位置をイミディエイトウィンドウに出力 Debug.Print "(" & find_cell.Column & "," & find_cell.Row & ")" Set prev_find_cell = find_cell Set find_cell = .FindNext(find_cell) '結合セルのみがヒットするとなぜかNothingになるためそれを回避 If find_cell Is Nothing Then Set find_cell = prev_find_cell '前回ヒットしたRangeが唯一の該当Rangeのはず Set prev_find_cell = Nothing Exit Do End If Loop While find_cell.Address <> findAddress End If End With Set find_range = Nothing End Sub
アスペクト指向プログラミングというのがあるらしい。
システムに渡って横断的に要求される機能を、一カ所に「アスペクト」としてまとめておくプログラミング手法、らしいですが、これだけでは何のことやらいまいちよく分からないことでしょう。
少し読み進めてみたところ、なんとなく雰囲気だけはつかめたかな?というところ。オブジェクト指向で設計してもどうしてもよく似た部分を複数の箇所に書かなければいけない、といった場合に、その部分を抜き出してまとめてしまおう、という考え方なのでしょうか。とりあえず使い回しそうなところは分散させずにまとめてしまおう、というところでしょう。特に目新しい考え方ではないですが、その実装方法が問題となることでしょう。
下手に使うと既存のプログラミング手法を壊しかねないので、よく考えて使わないといけないかもしれませんね。
Visual Studio ユーザーグループというのができてるみたいです。Visual Studio ユーザー間の情報交換の場の提供ということで、濃い情報が期待できそうです。
参加資格は単に Visual Studio に興味があること、というだけなので趣味で開発している、というような人は参加してみるのもいいかもしれません。まだ設立されたばかりのようで、これから発展していくことでしょう。
本格稼働は Visual Studio 2005 日本語版が完成してからになるのかな?とりあえず登録してみましたとさ。
Microsoft Visual Studio 2005 の英語版が完成したみたいですね。日本語版はまだみたいですが、もうすぐ完成することでしょう。
Visual Studio 2002, Visual Studio 2003, Visual Studio 2005 とリリースされてきた(される)わけですが、2005 はどんな感じなんですかねー。2002 はただひたすらに重い。2003 になって重いのが解消されて使いやすくなり、Unicode も本格的に対応されて、ようやく多国語も扱えるようになった。そして 2005 では 64 Bit への対応。今のところこれが個人的な実感。
それにしても高い…。