月: 2014年5月

ドラマ「ルーズベルトゲーム」

視聴率は半沢越えできないかもしれないが、観ていなかったら後悔するかもねって思い始めた。

半沢は大阪編と東京編が似たような話だったので、「またか・・・」みたいなところもあったし、半沢って、そんないいやつか?って気もしてたので、「勧善懲悪」なのがよい!っていう人の意見には少々違和感を感じてたのだよ、私は。
だってさ、はじめのうちはしおらしくしてて、勝ち目があると踏んだと途端「おい!てめぇ!!!」みたいな感じだったから、なんか豹変しすぎだろぉ・・・って思ったのだよ。

今回のも、なんか似たような感じなんだけど、
群雄割拠で「どうやって生き残るか!」みたいなところがあって、そういう意味で戦国時代好きとかには面白いと思うのだよ。

ということで、そろそろ視聴率が上がってくるんではなかろうかと期待する。
(まぁ視聴率なんて無意味なもんで縛られてほしくないんだけどね)

Struts2 ForとかDoとかWhileとか・・・

まぁとりあえず、ぐるぐる回したいときね。

あるんですよ。

鍵のついたキーホルダーの端っこを指にはめ込んで、鍵をぐるぐる意味もなく回したりね。

いや、そんな話でなくて・・・iterator

ソフトウェア技術ドキュメントを勝手に翻訳 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つくりゃいいじゃんか!って思うんだけどね。
まぁ、人それぞれ、言語もそれぞれってことです。

SQLServer覚書 Excel→DB

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月ぐらいには新しいタイプが出るのだろうが、それまで待てないし!ということで買った。

電子レンジが届いた。

前のもパナだったけど、操作感がいまいち違うので、ちょっと戸惑ってしまったが、温めるだけなので、まぁさしたることではない。

ようやく電子レンジで、冷凍食品&簡易調理ライフに戻れるので、ちょっとウキウキである。

Excel覚書 結合セルとの格闘

今日は昨日やったことの続きをやろうと思っていたら、昨日作ったロジックがどうも思い通りに動いていない。

検索絡みだ。

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 となる。

Excelオセェ~と思ってしまう事象について

現在仕事で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

のあたりを見ていくしかないですなぁ・・・

VAIO TAP11 ワイアレスキーボード

1、2か月ほど前、キーボードの充電が全然できてなくて、仕事が進まなかった。
メールとかはスクリーンキーボードでとりあえず済ましたのだが、やはり、プログラミングをスクリーンキーボードでやるのは狂気の沙汰。

で、修理に出した。

なんか、本体側のボードがおかしくなったらしくて取り替えてくれたらしい。

で、キーボードの充電はできるようになった。

よかった!と思ったけど、今度は充電が全然できてない。
2時間ちょこちょこと作業していただけで、もう切れた・・・

おまけに、本体と引っ付けなきゃ充電ができないから、仕事できないは、遊べないは・・・

こんなもん売ってるから、事業売らなきゃいけなくなるんだよぉ~

もう一回、修理に出してやろうか・・・