過去バージョンのダウンロードページを探すのは一苦労する。
Oracle JRE6 ダウンロードページ
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
Acceptのラジオボタンにチェックしてから、リンククリックしてダウンロード。
過去バージョンのダウンロードページを探すのは一苦労する。
Oracle JRE6 ダウンロードページ
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
Acceptのラジオボタンにチェックしてから、リンククリックしてダウンロード。
Excelファイルを作成するときに、マクロの入ったシートをコピーして作成すると、マクロが残っちゃって困ってしまった。
おまけに、一部のシートしかコピーしてないから、モジュールとかにあるプロシージャとかがないってエラーになってしまう・・・
で、マクロは保存する前に削除しちゃいましょう!なロジックを見つけてきた。
元ネタはこちら
Excelでお仕事! マクロを除いた配布用ブックを作成する。
'======================================================
'ブック上にあるマクロを全部削除しちゃうよロジック
'======================================================
Public Sub DeleteMacroIn(wb As Workbook)
Dim obj As Object '正しい型はVBComponent
Dim lines As Long
For Each obj In wb.VBProject.VBComponents
With obj.CodeModule
lines = .CountOfLines
If lines > 0 Then .DeleteLines 1, lines
End With
Next obj
End Sub
とうとう、そういう歳になってしまった。
が、迷い戸惑い、怒りに身を震わせる自分が相変わらずここにいる。
で、Agora 「不惑」という困惑 という記事を読んだ。
まぁ、歳なんて関係ないのよ。西洋にはそんな考え方ないし・・・みたいな感じ。
こういう考え方ができると楽だよねぇ・・・とか思うのだが、本当にそれでよいのかとも思う。
自分は独身で子供もいないけど、周りにいる同世代、または親である人たちで、そりゃいい親だとか、ちゃんと育てているなと思える人たちはいっぱいいるが、そうも思えない人もいる。
ほっときゃいいじゃない、って思うかもしれないが、ほっといて本当によいのだろうか。
放置して、自分に跳ね返ってきたら、あの時ほったらかしにしたことを後悔しないかね。
(まぁ、関係ないって思っているのだったら、後悔なんかしないのかもね。)
でも、マンションの隣の部屋で餓死した人がいたらどうかな。
なんかできなかったかな、自分・・・とか思うんじゃないの。
仏教には受容という言葉があるけれど、何でもかんでも受け入れるということではない。
やっぱり自分で考えて、人の意見も聞いて、かみ砕いて消化する必要があると思う。
そして、ダメなものは駄目だし、「ならぬものは、ならぬ」。
まぁ、そんな当てもなく、いろいろ思いつつ、今日は早く仕事を終わらせるのが、今の私のメイン課題なのである。
ファイルをWクリックしたときにどっちのバージョンのEXCELを開いてほしいか指定する方法。
コマンドプロンプトで以下を実行
自分の環境はExcel2013(32bit)なので、
“C:\Program Files (x86)\Microsoft Office\OFFICE15\excel.e
xe” /regserver
ファイルパスは32bitと64bitでは違うし、パスを指定してインストールしたらこれとは違うので、自分の環境にあわせて変える。
Excel2003はOFFICE11、2010はOFFICE14、2013はOFFICE15。
SQLServerで縦並びになっているデータを横並び(カンマ区切り)にして出力したくなった。
【TABLE1】
CD | KOMOKU
1 | A
1 | B
2 | C
2 | D
【TABLE2】
CD | CNAME
1 | あ
2 | い
ってあった場合、
CD | CNAME | KOMOKU
1 | あ | A,B
2 | い | C,D
って出したい!ってことで、調べた結果、
select
TABLE2.*
,replace((select KOMOKU AS [data()]
from TABLE1
where (TABLE1.CD=TABLE2.CD)
for xml path('')
),' ',',') AS KOMOKU
from TABLE2
ってな感じに記述するとのこと。
KOMOKUにスペースが含まれているとこれってうまくいかないんだよねぇ・・・とか思いつつ、自分の場合は特に問題なかったのでOK。
[data()] ってのがアトミック値にするっていうことらしいがよくわからんかった。
(分解できないとか、処理速度が速いとか書いてあったけど、結局よくわからん・・・)
ExcelVBAでファイルを起動する方法。
Excelのブックとかでなく、JpegとかTextファイルとかを起動したい場合の記載方法。
(これでやれば、ファイルなら既定のアプリでファイルを開いてくれる)
CreateObject("Wscript.Shell").Run
参考URL
1) 別のやり方も載ってる
moug ExcelVBA 他アプリを起動する
2) 引数について詳しいのはこっち
VBScript Tips & サンプル プログラムを実行する、ファイルやフォルダを開く
とうとう耐えられず、ってか汗疹が出たのでもう無理!
ってことで、今日が2014年のクーラー解禁日!
自ブック内でHYPERLINKをしたい場合は、
=HYPERLINK(“#SHEET1!A1″,”LINK>>”)
と#記号を使う。
また、忘れそうだからメモメモ!
さてもさても、JCB貸切でござる。

退団公演だからチケットとれなさそうだしなぁと観る気なかったのだが、ポスター見たらなんか面白そうだったので、イソイソとチケットを取った。
初めての2階席で、しかも殆んどAかBだろう!!!と文句を言いたくなるS席だったが、2階からの眺めはそこそこ良かった。
今回のは芝居がよかったな。(前田慶次が?それとも馬が?)
前田慶次=壮一帆がピッタシくるところはもちろんなんだけど、今の組の状態が非常にバランスが取れていて、そのことがよくわかる芝居だったのだ。
落下傘トップというのは疑問視されることが多いのだが、力量があればすごくいい組を作れるものだなぁと実感した。
(ここ最近のトップだと、むしろ落下傘のほうがいい仕事をしているように思える。)
なんか、トップが辞めてこのバランスが崩れてしまうことが惜しい気がするけれど、これが宝塚の良さでまた新しい風が吹くのさ・・・
(と、感慨深げに花の道を歩いて帰る)
もうちょっと男女の絡みがあってもよかった気がするけど、まぁ時間的にこんなもんかな、とも思う。
で、ショー。
また「TAKARAZUKA」ってついてるから、もういいよ自画自賛オンパレードは・・・って思ってたけど、全然違ったのでよかった。
私は退団公演ってのは初めて生で観るんだけど、なんだか、これはファンでない、よくわかってない自分でもウルっときちゃうな。
ただ、もうちょっとしんみり、ってかしっとりした場面があってもよかったんじゃないかって思う。
結局盛り上がって場面終了!みたいなものばかりで、ちょっとウザい。
でも、正直、フィナーレだけで十分元は取れたな。
あのフィナーレ見るために、DVD買ってもいいなぁって思った。
そういえば、Shall We ダンス?のDVDは買ったのだが、ちょっと物足りないね。
生があんだけよかったのに、DVDは・・・ってちょっと残念だった。
DVDの編集の仕方とか変えるだけで、もっと売れそうに思うんだけどどうだろうか。
このブログのアクセスって明らかに平日が多い。
記載した技術情報が役に立ってくれれば幸いなのだが・・・
さて、ファイルの所有者ってとってこれんのか?って話。
とってこれるみたい。
Kameya blog「VBScriptでフォルダ・ファイルの所有者の確認を行う」を参考に、ExcelVBAで作成してみた。
'-----------------------------------------------------
' ファイルの所有者を取得する
' 引数 :ファイルパス(File Only)
'-----------------------------------------------------
Private Function GetOwner(fpath As String) As String
Dim WMIService As Object
Dim objSet As Object
Dim obj As Object
Dim buf As String
'ちゃんと渡してよ!って抜ける
If Len(fpath) = 0 Then Exit Function
Set WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
buf = ""
'TODO 本当はちゃんとエスケープしないとダメ
Set objSet = WMIService.ExecQuery("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" _
& Replace(fpath, "\", "\\") _
& "'} WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")
For Each obj In objSet
buf = buf & obj.AccountName & ","
Next
If Len(buf) > 0 Then
GetOwner = Left(buf, Len(buf) - 1)
End If
Set obj = Nothing
Set objSet = Nothing
Set WMIService = Nothing
End Function
参照したサイトだと記載されていなかったのだが、¥マークは二重にしないといけない。
(常識?いや、CとかC++とかC#とか・・・ならともかく、VB書いてるときは頭がBasicモードになってしまい、忘れてしまうのだ。)
フォルダの所有者を確認するときは、WHERE句が変わるはず。
視聴率は半沢越えできないかもしれないが、観ていなかったら後悔するかもねって思い始めた。
半沢は大阪編と東京編が似たような話だったので、「またか・・・」みたいなところもあったし、半沢って、そんないいやつか?って気もしてたので、「勧善懲悪」なのがよい!っていう人の意見には少々違和感を感じてたのだよ、私は。
だってさ、はじめのうちはしおらしくしてて、勝ち目があると踏んだと途端「おい!てめぇ!!!」みたいな感じだったから、なんか豹変しすぎだろぉ・・・って思ったのだよ。
今回のも、なんか似たような感じなんだけど、
群雄割拠で「どうやって生き残るか!」みたいなところがあって、そういう意味で戦国時代好きとかには面白いと思うのだよ。
ということで、そろそろ視聴率が上がってくるんではなかろうかと期待する。
(まぁ視聴率なんて無意味なもんで縛られてほしくないんだけどね)
まぁとりあえず、ぐるぐる回したいときね。
あるんですよ。
鍵のついたキーホルダーの端っこを指にはめ込んで、鍵をぐるぐる意味もなく回したりね。
いや、そんな話でなくて・・・iterator!
ex) 1,2,3,4,5と順に・・・
<s:iterator status=”stat” value=”{1,2,3,4,5}” >
これなんかは、{1,3,6,10} とか括弧の中身を変えてしまうと、また違った使い方ができる。
ex) とりあえず5回
<s:iterator status=”stat” value=”(5).{ #this }” >
(5)ってところを変数つかって(data_max)とかできちゃうよね。
って、forつくりゃいいじゃんか!って思うんだけどね。
まぁ、人それぞれ、言語もそれぞれってことです。
Excelのデータを1行ずつ挿入していくのが面倒なので、シートまるっとINSERTをやってみた。
引数は以下の通り
workbook_path:元データのブック
sheet_name:workbook_pathのどのシートを元データとするのか指定
db_src:DBの場所
db_name:DBの名前
login_id:DBのユーザID
login_pw:DBのユーザパスワード
table_name:DBのどのテーブルを操作するのか(ここではデータの投入先)
Private Function ExportFromXLSX(workbook_path as String,sheet_name as String, db_src as String, db_name as String,login_id as String, login_pw as String, table_name as String) As Boolean
Dim cn as ADODB.Connection
Dim recs_aff as Long
On Error Goto ErrFunc
Set cn = New ADODB.Connection
'2007バージョンのExcelファイルを開く
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & workbook_path & ";" & _
"Extended Properties=Excel 12.0"
'Jetプロバイダを使用してインポート
sql = "INSERT INTO [odbc;Driver={SQL Server};" & _
"Server=" & db_src & ";" _
& "Database=" & db_name & ";" _
& "UID=" & login_id _
& "PWD=" & login_pw _
& "]." & table_name _
& " SELECT * FROM [" & sheet_name & "$]"
cn.Execute sql, recs_aff, adExecuteNoRecords
cn.Close
Set cn = Nothing
ExportFromXLSX = True
Exit Function
ErrFunc:
'エラーメッセージ表示
' ---- (省略) ----
If Not cn Is Nothing Then
If cn.State=1 Then cn.Close
Set cn = Nothing
End If
End Function
こんなことやらなきゃいけないのは、SQLServer側からExcelシートの内容をとってこようとしたときに、分散クエリほにゃほにゃ・・・というエラーが出てしまったからなのだ。
なのでExcelシートから、SQLServer側に送るイメージ。
汚くなった電子レンジを買い替えることにした。
買って10年近くなるし、消費税が8%に上がる前に・・・と思ったのだ。
冷凍食品や弁当の温め直しぐらいしか使わないので、オーブン機能とかいらないのだが、でも横開きじゃなくて前開きがほしいのだ。
とすると、もう限られたものしかなく、結局パナの23Lに目星をつけていた。
が、3月にヨドバシカメラに行ったら、価格.comの最低価格(1月)より欲しい電子レンジは10%以上値上がりしてた。
2月に私がヨドバシに行った時よりも、2000円ほど上がっていたのだ。
価格.comで見たら、1.8万円台の電子レンジが、3月下旬にヨドバシに行ったら2.2万ぐらいで、ポイント還元しても高いことは明白。
ただ、前のやつを粗大ごみに出してしまったので、早く替えがほしかった。
で、4月もいつ下がるのかと、梅田に出るたびに、ちょこちょこ覗いていたのだが、大して下がらず、とうとう5月。
その間もAmazonで毎日確認し、5月に入ると、1日100円ぐらい下がり始め、ようやく1.9万円台になってきた。
で、もうあまり下がりそうもないので、買うことにした。
おそらく、8月ぐらいには新しいタイプが出るのだろうが、それまで待てないし!ということで買った。
電子レンジが届いた。
前のもパナだったけど、操作感がいまいち違うので、ちょっと戸惑ってしまったが、温めるだけなので、まぁさしたることではない。
ようやく電子レンジで、冷凍食品&簡易調理ライフに戻れるので、ちょっとウキウキである。
今日は昨日やったことの続きをやろうと思っていたら、昨日作ったロジックがどうも思い通りに動いていない。
検索絡みだ。
Find関数を使って、セル範囲内の値検索をしたかったのだが、同値のセルを検索してくれないとキタ。
Find(…) → FindeNext() を最初のセル、または戻り値がNothingになるまで繰り返すのだが、どうもうまくいかない。
で、結合セルが含まれているせいで、検索がうまくいかないのかと、結合セルをすべて解除させたシートを一つ作って、Ctrl+Fで検索してみたのだが、やはりうまくいかなかった。
Ctrl+Fの検索ダイアログでうまくいかないものをマクロでうまくいかそうなどというのは、無駄な抵抗なので、もう行列全体を1つ1つ当たっていくことにした。
With Worksheets(xx)
For c=1 to 100 Step 1
For r=1 to 100 Step 1
If Cstr(.Cells(r,c).Value) = CheckText Then
''' ここに処理 '''
End If
''' ここに下の結合セルのMax行数抽出のサンプル挿入 '''
Next r
Next c
End With
こんな感じに1セルずつ当たっていくわけ。なんとも、面倒な話だが、仕方がない。
しかし、対象セル範囲の中に結合セルがあるので、厄介だ。
というより、結合されている場合は、先頭のセルだけ確認すればよいわけで、検索時間を短縮できると考えた。
下の「結合セルのMax行数抽出のサンプル」は縦結合しかされていないので、横結合の場合はまた変わってくるわけだが・・・
Dim rng As Range '確認対象セルを設定すること
If Not rng.MergeCells Then
'結合されていない場合
min_row = rng.Row
max_row = rng.Row
Else
'結合されている場合
min_row = rng.MergeArea.Cells(1, 1).Row
max_row = SearchMergeRowMin + rng.MergeArea.Rows.Count - 1
End If
次に確認するセルは、同じ列の max_row+1 となる。
現在仕事でExcel2010を使っているのだが、会社のサーバにあるドキュメントなんぞを開けようものなら、
ダウンロード中・・・
みたいなメッセージが出て、もう異様に遅い。
ってなことで、ググってみた。
そうすると、信頼できる場所にしたら、マシになるかもね!なんて話が。
Microsoft Officeサポート:信頼できる場所を追加、削除、変更する
さっそくやってみたさ。
って、ネットワーク上のフォルダが指定できひんやないかい!!!
ほな、あとは、
[レジストリ エディター] で、次のレジストリを見つけます。
※ レジストリが見つからない場合、手順 “4.” 以降は実施する必要はありません。
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\11.0\Excel\Security\FileValidation
“EnableOnLoad” をダブル クリックし、値のデータに 1 を設定し [OK] をクリックします。
[ファイル]-[レジストリ エディタの終了] をクリックします。
出典:http://support.microsoft.com/kb/2575312/ja
のあたりを見ていくしかないですなぁ・・・
1、2か月ほど前、キーボードの充電が全然できてなくて、仕事が進まなかった。
メールとかはスクリーンキーボードでとりあえず済ましたのだが、やはり、プログラミングをスクリーンキーボードでやるのは狂気の沙汰。
で、修理に出した。
なんか、本体側のボードがおかしくなったらしくて取り替えてくれたらしい。
で、キーボードの充電はできるようになった。
よかった!と思ったけど、今度は充電が全然できてない。
2時間ちょこちょこと作業していただけで、もう切れた・・・
おまけに、本体と引っ付けなきゃ充電ができないから、仕事できないは、遊べないは・・・
こんなもん売ってるから、事業売らなきゃいけなくなるんだよぉ~
もう一回、修理に出してやろうか・・・

GWが始まった。
といっても、カレンダー通りに出勤すると、あまりGWっぽくないのが今年。
今日の目当ては2つ。
1つは、阪神百貨店で開催されている猫フェス。
猫をモチーフにした作品で埋め尽くされるので、猫&手作りのフリマみたいなところだろうか。
毎年行っているので今年も行くことに。
2つ目は、今度は阪急百貨店でやっているディズニーのイベント。
こちらは阪神のカードでただで入れるので、これも行くことに。
あとは、惰性だけど、ヨドバシとグランフロント。
グランフロントは1周年なので、なにかやっている筈。
で、阪急・阪神はいつも通り見て回って、いつも通りちょこちょこと買って、ドバっと食べものを見繕って終了。
次はヨドバシ。
部屋の無線ルータが機能してなかったので、やばい!と思って、プラネックスの安いのを(っていっても6000円以上したのだが)買っておく。
(家に帰ったら、無線ルータが問題なく動いていたので、無駄な買い物だった・・・)
そして、グランフロント。
昼ごはん代わりに、初めて一番搾りのフローズンを飲む。
あと、ウィンナーのセットを買って貪り食らう。
ウィンナーは結構な値段だが、やはりビールとウィンナー(ソーセージ)は友達!なのだ。
次回はぜひツートンのカクテルのほうを飲もう。


十分酔っ払いになったところで、グランフロントの内部に入り、上の階に上がってみる。
まずはGAPだ。40%OFFってメールが届いたので、ちら見ぐらいで終わらせようかと思ったが、ついついあれやこれやと手が伸びて、結局8000円強ほど買ってしまった。
1万円以上買えばスープ皿がもらえたらしいが、もういいや。
さぁ、どんどん上層階へ上がっていく。
奈良県の観光案内ブースになっていたところに、ゆるきゃらがいたので、思わず写真を撮ってみる。

かわいいのぉ・・・・・・
最近奈良に行っていないから、今年は行くか!
あとは、いろいろLabo.が開かれていて、いろんな体験できて面白かった。
大人一人でも十分楽しめたので、子供を連れて行けば、一緒に勉強できてもっと楽しいだろう。
コカコーラのラベルに自分の名前を入れることができるよぉ!ってなところも行こうと思ったけど、そもそもスーパーで100円未満で売っているものに150円払って、ラベルに自分の名前が入って、だからなんなのだ?と思ったら、1時間も待ってまで行くこともなかろうとやめた。
実際にやってもらった人も、ちゃっちいって言ってたし。
空いてたら150円払うけどね。
と、そんなところでグランフロントでの買い物は終わった。

大阪のオバハンにまでうるさがられていた嵐の宣伝トレーラー。
WindowsXPからWindows7に変えていろいろムカつくことがある。
その1つは、Explorerを立ち上げた時に、お気に入りだのマイドキュメントだのが、どで~んと拡がること。
あのね、そんなところにファイル置きませんから。
まったく、余計なことしやがって・・・
ということで、起動時に拡げたいフォルダをDドライブのほうにしてやる。
Explorerのプロパティを開いて、explorer.exe の後ろにほにゃほにゃと追加
「%windir%\explorer.exe /e, /n, D:\」
適用させて、Explorerを立ち上げれば、Dドライブが見えて、他は縮んだままになってる。
おせっかいはほどほどにしてほしいものだ。
さて、15年ぶりという鳴物入り的な状況でリリースされ、
リリース開始からいきなり緊急メンテに入ったという、暗黒史の1ページを気づいてしまった大航海時代V。
今のところ、私のWindowsでは、FirefoxとOperaで問題なく動いている。
よかったよかった。
だが、クエストがいつも同じようなものばかりでマンネリ化。
外伝は海図がないと続きができないけど、どこで海図がみつかるのかさっぱりわからんし、困った困った。
という、暗黒史第2幕を迎えているような気配の大航海時代Vを中継でお伝えしました。
ニュースセンターへお返しします。(いやいや)
私が好きなのはVer2なのだ。
あれって職業選べるというか、交易メインとか、戦闘メインとかのキャラを選べるし、シナリオもよかったし、楽にできたから好き。
もう1回やりたいけど、PC版もう売ってないんだねぇ。
そして、大航海時代最強はやはり、Ver3。
なんせ、子供まで作っちゃえるんだから、そりゃ最強でしょう。
ただ、Ver3が凄すぎたせいで、もうVer4とかだと絵はきれいだけど、退屈。
シナリオっていっても、Ver2で妹との再会を果たした後だから、退屈。
って感じになっちゃったわけ。
で、Ver5はって言ったら、戦闘がじゃんけん方式になった、ただのカードゲーム。
海図は今のところ北アフリカまでしかなくって、行きたいところに行けないし。
同じ場所の海図が3種類あるってどういうこと?
しかも、ラピスラズリが100個以上も溜まってるのに、ほしい海図は手に入らない。
で、結局行くところも決まってて、クエもお決まり一辺倒だから、もうマンネリにたどり着くしかないわねぇ・・・
早く新大陸に行きたいな・・・(行きたいな・・・とフェードアウト)