アーカイブ

投稿者のアーカイブ

失業した

2010 年 5 月 24 日 Shohei コメントはありません

暇なうちにやりたい事一覧、仕事決まらないかしらー。

  • Z3のオーディオ置き換え→社外での取り付けキットがあるらしい
  • 一人で海外旅行、グアム行きたい。
  • 教員免許の申請(いい加減いけよ
  • 京都府教員採用試験(今いっても記念受験にしかならなそう
  • 痩せる!
  • この機会に大型4輪免許取得(お金が・・・)
  • 部屋の片付け
  • 個人で管理してるページをもうちょっと頑張る
  • Z3のアライメント調整・・・
  • XELVIS初号機のカウル修復(途中)
カテゴリー: 未分類 タグ:

HTMLのテーブルタグを縦横入れ替える

2010 年 4 月 22 日 Shohei コメントはありません
某大手ECサイトというか楽天の一括更新はCSVなので必然的にExcelでやる羽目になる。
商品情報をなぜかテーブルタグで書いてたのでそれを縦横入れ替えたいときは下記のようなスクリプトを書けば一括ですね、という話。
Option Explicit
Sub main()
Dim SelectCell As Range
Set SelectCell = Range(“g3″)
SelectCell.Activate
While SelectCell.Value <> “”
If InStr(SelectCell.Value, “table”) <> 0 Then
SelectCell.Value = ReplaceHTML(SelectCell.Value)
End If
Set SelectCell = SelectCell.Cells(2, 1)
SelectCell.Activate
Wend
End Sub
Function ReplaceHTML(str As String) As String
Dim pos_header As Integer
Dim pos_footer As Integer
Dim pos_tbl_header As Integer
Dim pos_tbl_footer As Integer
Dim header As String
Dim footer As String
Dim table_data As String
Dim table_body As String
Dim table_header As String
Dim table_footer As String
Dim table_body_th As String
Dim table_body_td As String
Dim temp As String
Dim title As Variant
Dim data As Variant
Dim i As Integer
‘テーブルタグまでヘッダを検出する
pos_header = InStr(str, “<table”)
header = Left(str, pos_header – 1)
‘テーブルタグが終わった後のフッタを検出する
pos_footer = InStr(str, “</table>”)
footer = Right(str, Len(str) – pos_footer – 7)
table_data = Mid(str, pos_header, Len(str) – (Len(str) – pos_footer) – pos_header + 8)
‘Debug.Print “header——” & header
‘Debug.Print “table——-” & table_data
‘Debug.Print “footer——” & footer
pos_tbl_header = InStr(table_data, “<tr”)
table_header = Left(table_data, pos_tbl_header – 1)
pos_tbl_footer = InStr(table_data, “</table>”)
table_footer = Right(table_data, Len(table_data) – pos_tbl_footer)
‘テーブルのTR的な部分だけを検出。
table_body = Mid(table_data, pos_tbl_header, Len(table_data) – pos_tbl_header – (Len(table_data) – pos_tbl_footer – 1))
‘Debug.Print “テーブルのヘッダ部分” & table_header
‘Debug.Print “テーブルのフッタ部分” & table_footer
‘Debug.Print “テーブルの本体部分” & table_body
‘<TH>部分を抜き出す
table_body_th = Left(table_body, InStr(table_body, “</tr>”) + 4)
table_body_td = Right(table_body, Len(table_body) – Len(table_body_th))
‘Debug.Print “Th部分” & table_body_th
‘Debug.Print “Td部分” & table_body_td
title = Split(table_body_th, “</th>”)
data = Split(table_body_td, “</td>”)
For i = 0 To UBound(title)
title(i) = RemoveHTML(title(i))
Next i
For i = 0 To UBound(data)
data(i) = RemoveHTML(data(i))
Next i
For i = 0 To UBound(title) – 1
temp = temp & “<tr>”
temp = temp & “<th>” & title(i) & “</th>”
temp = temp & “<td>” & data(i) & “</td>”
temp = temp & “</tr>”
Next
ReplaceHTML = header & table_header & temp & “</table>” & footer
End Function
Function RemoveHTML(strHTML) As String
‘HTMLタグを削除するファンクション
Dim Flg As Boolean
Dim i As Integer
For i = 1 To Len(strHTML)
If Mid(strHTML, i, 1) = “<” Then
Flg = True
Mid(strHTML, i, 1) = ” “
ElseIf Mid(strHTML, i, 1) = “>” Then
Flg = False
Mid(strHTML, i, 1) = ” “
ElseIf Flg Then
Mid(strHTML, i, 1) = ” “
End If
Next
strHTML = Replace(strHTML, ” “, “”)
‘Debug.Print strHTML
RemoveHTML = strHTML
End Function

Option Explicit
Sub main()Dim SelectCell As Range
Set SelectCell = Range(“g3″)SelectCell.Activate
While SelectCell.Value <> “”    If InStr(SelectCell.Value, “table”) <> 0 Then        SelectCell.Value = ReplaceHTML(SelectCell.Value)    End If    Set SelectCell = SelectCell.Cells(2, 1)    SelectCell.ActivateWend
End Sub
Function ReplaceHTML(str As String) As String
Dim pos_header As IntegerDim pos_footer As IntegerDim pos_tbl_header As IntegerDim pos_tbl_footer As Integer
Dim header As StringDim footer As StringDim table_data As StringDim table_body As StringDim table_header As StringDim table_footer As StringDim table_body_th As StringDim table_body_td As StringDim temp As String
Dim title As VariantDim data As Variant
Dim i As Integer
‘テーブルタグまでヘッダを検出するpos_header = InStr(str, “<table”)header = Left(str, pos_header – 1)
‘テーブルタグが終わった後のフッタを検出するpos_footer = InStr(str, “</table>”)footer = Right(str, Len(str) – pos_footer – 7)
table_data = Mid(str, pos_header, Len(str) – (Len(str) – pos_footer) – pos_header + 8)
‘Debug.Print “header——” & header’Debug.Print “table——-” & table_data’Debug.Print “footer——” & footer
pos_tbl_header = InStr(table_data, “<tr”)table_header = Left(table_data, pos_tbl_header – 1)
pos_tbl_footer = InStr(table_data, “</table>”)table_footer = Right(table_data, Len(table_data) – pos_tbl_footer)

‘テーブルのTR的な部分だけを検出。table_body = Mid(table_data, pos_tbl_header, Len(table_data) – pos_tbl_header – (Len(table_data) – pos_tbl_footer – 1))
‘Debug.Print “テーブルのヘッダ部分” & table_header’Debug.Print “テーブルのフッタ部分” & table_footer’Debug.Print “テーブルの本体部分” & table_body
‘<TH>部分を抜き出す
table_body_th = Left(table_body, InStr(table_body, “</tr>”) + 4)table_body_td = Right(table_body, Len(table_body) – Len(table_body_th))
‘Debug.Print “Th部分” & table_body_th’Debug.Print “Td部分” & table_body_td
title = Split(table_body_th, “</th>”)data = Split(table_body_td, “</td>”)
For i = 0 To UBound(title)    title(i) = RemoveHTML(title(i))Next i
For i = 0 To UBound(data)    data(i) = RemoveHTML(data(i))Next i
For i = 0 To UBound(title) – 1    temp = temp & “<tr>”    temp = temp & “<th>” & title(i) & “</th>”    temp = temp & “<td>” & data(i) & “</td>”    temp = temp & “</tr>”Next
ReplaceHTML = header & table_header & temp & “</table>” & footer
End Function
Function RemoveHTML(strHTML) As String’HTMLタグを削除するファンクション
Dim Flg As Boolean
Dim i As Integer
For i = 1 To Len(strHTML)    If Mid(strHTML, i, 1) = “<” Then        Flg = True        Mid(strHTML, i, 1) = ” “    ElseIf Mid(strHTML, i, 1) = “>” Then        Flg = False        Mid(strHTML, i, 1) = ” “    ElseIf Flg Then        Mid(strHTML, i, 1) = ” “    End If Next strHTML = Replace(strHTML, ” “, “”)’Debug.Print strHTMLRemoveHTML = strHTMLEnd Function

カテゴリー: 未分類 タグ:

久々に

2010 年 4 月 2 日 Shohei コメント 1 件

VBA書いたので残しておくw
Set ~思い出すのに3分かかったw

Sub main()
Dim SelectCell As Range

Set SelectCell = Range(“i2″)
SelectCell.Activate

While SelectCell.Value <> “”

SelectCell.Value = ReplaceHTML(SelectCell.Value)

Set SelectCell = SelectCell.Cells(2, 1)
SelectCell.Activate

Wend

End Sub

Function ReplaceHTML(str As String) As String

Dim pos As Integer
Dim str1 As String
Dim str2 As String

‘最初のTRまで検出する
pos = InStr(str, “</tr”)

str1 = Left(str, pos)
str2 = Right(str, Len(str) – pos)

str1 = Replace(str1, “<tr”, “<tr id=”"st_head”" “, 1, -1, vbTextCompare)
str2 = Replace(str2, “<tr”, “<tr id=”"st_date”" “, 1, -1, vbTextCompare)

ReplaceHTML = str1 & str2

End Function

カテゴリー: 未分類 タグ:

【Z3】事故った

2010 年 3 月 26 日 Shohei コメントはありません

はい、事故りました(2週間も前だけど)

これからこのブログはZ3の修復日記になります(何故か前にもこんなことがあった気がするのは気のせい)

カテゴリー: 未分類 タグ:

大柴広己「27」

2010 年 3 月 18 日 Shohei コメントはありません

5年前の私も友情出演中です。

ついでに前の前の愛車ボンゴもばっちり映ってる。

撮影:主に私でお送りしましたw

カテゴリー: 音楽 タグ:

ロードバイクのヘルメット

2010 年 2 月 7 日 Shohei コメントはありません

ロードバイク暦2日目。

やはり必要だということで購入。
Amazonで発注してしまった…

んで、フロントディレイラーがアウター側のときにリアがインにいくと音がする件が気になって調整してみたものの、先人にいわせると「仕様です」とのこと。
なんじゃそらー

明日は早起きできれば初通勤!

カテゴリー: 未分類 タグ:

ロードバイク購入

2010 年 2 月 6 日 Shohei コメントはありません

本日届きました。

目指せ通勤快速!です。

いっぱい走るぞ~

カテゴリー: 未分類 タグ:

【読了】邪悪なものの鎮め方

2010 年 2 月 3 日 Shohei コメントはありません

ほとんどブログで読める内容ですが、ものを読むには紙媒体のほうがいいです。
どう良いかというと、説明するのは難しいですが、発光してる物体の上に描かれているドットの集合体と紙に印刷されているものでは、入ってくるときに通るところが違う気がする。
わかりにくいはなしですまない。

先生も書いてるけど次々と読み進めてしまうので、あっという間に読んでしまうがまた読み返したくなる。

ナチューレ文庫に追加しました。

カテゴリー: 未分類 タグ:

コモンダイアログを開いたときに縮小版にしたい

2010 年 1 月 19 日 Shohei コメントはありません

職場で事情によりネットショップ・オーナーというソフトを使うことがあるんですけど、画像選択するコモンダイアログがいつもアイコンでしか開かない。Windowsって不便です。

でも毎回縮小表示にするのが面倒なので、何とかしたいと思った。そもそもコモンダイアログだろうとSendMessageでなんとか出来るとだろうと思い検索。すると既に公開されている方がいた!それでソースをそのままコピーして、利用するWindows2003とネットショップ・オーナーでも動作するように変更しただけです。ソール公開しているくまっちさんに感謝。

ここにバイナリ置いてきますね。主に自分のため。

以下改変したソース

#uselib "user32.dll"
#cfunc FindWindow "FindWindowA" sptr, sptr
#cfunc FindWindowEx "FindWindowExA" int, int, sptr, sptr, 

#define WM_COMMAND 0x0111
#define THUMBNAIL_XP 0x702d //XP
#define THUMBNAIL_W2K 0x7031 //W2K

screen 0,200,100,1
title "縮小版にしちゃう"

a = sysinfo(0)
;mes a
b = instr(a,0,"NT")
c = instr(a,0,"5.0")
d = instr(a,0,"5.1")

if(b > 0){
	mes "NT系"
}else{
	mes "NT系以外"
	mes "利用できません。"
stop
}

if( c > 0){
	mes "Win 2K"
	THUMBNAIL = THUMBNAIL_W2K
}else{
if( d > 0){
	mes "Win Xp"
	THUMBNAIL = THUMBNAIL_XP
}else{
	mes "Vista?"
	//mes "利用できません。"
	//stop 別にとめない
	THUMBNAIL = THUMBNAIL_XP
	}
}

while(1)
hwnd1 = FindWindow("#32770", "イメージソースの選択")

if(hwnd1 == 0){
	hwnd1 = FindWindow("#32770", "別名で保存")
}

if(hwnd1 == 0){
	hwnd1 = FindWindow("#32770", "名前を付けて保存")
}

if(hwnd1 == 0){
	hwnd1 = FindWindow("#32770", "画像選択")	//これを追加した
}

hwnd2 = FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",0 )

if(hwnd2){
	sendmsg hwnd2,WM_COMMAND,THUMBNAIL,0
	while(FindWindowEx(hwnd1, 0, "SHELLDLL_DefView",0 ))
		wait(50)
	wend
}
wait(50)
wend
カテゴリー: 開発メモ タグ:

【映画】かいじゅうたちのいるところ

2010 年 1 月 16 日 Shohei コメントはありません

昨日、仕事帰りにジュンク堂に寄ったところ。
15日公開というチラシを見てしまった。
幸い今日は金曜日で夜は店にでなくていい日だし、何の用事もない。ということで、軽くファストフード(回転寿司)でご飯を済ませてTOHOシネマズに直行。
ラッキーなことに字幕版がレイトショーでやっていたので、観てきた。

原作の絵本で育ったので、あの「かいじゅうたち」が動き回ってるCGを観るだけで、感動してしまった。
絵本が原作だけど、再現度は非常に高いと思う。
よくある原作もので、映画化してみたらガッカリという印象はなかった。

寒い季節ですが、この映画を観て少しほっこりしてみるのもありだと思います。

カテゴリー: 映画 タグ: