「etTomioのトホホ日記」 2010年6月        

◆2010/6/30
David Bowie - Ashes To Ashes
◆2010/6/28
 先日書いた、ローマ字入力とかな入力の切り替えで一部「Alt」キーを押しながらという文が抜けていました。現在訂正しています。
◆2010/6/27
 私は今日が誕生日で60まで丁度あと3年です。60になるまでに書きたいという夢のようなプログラム、人間の思考に近い・・・ 馬鹿な !! 出来る筈がありません。
 まだ何もイメージが浮かびませんが、夕方いつものように焼酎飲みながら、漠然とマスターのデータベースのイメージがほんの少し浮かびました。
 でも、そのデータベースはまだ作りません。次に行う処理のイメージが浮かばないと、何百というデータが死んでしまいます。
◆2010/6/27
 昨日、雑誌でマイクロソフトからMS IME 2010が出ていることを知りました。Officeを入れている人ならバージョンに関係なく無料だそうです。
http://www.microsoft.com/japan/office/2010/ime/
 ここからダウンロードしてインストール。その後「ツール」から「プロパティ」、そして「その他タブ」を開き、「辞書アップデートの選択」、「インストール済みの辞書を自動的にバージョンアップする」にチェックを入れるんだそうです。
 私は、Win7は有償の「Atok2010」を入れてるし、Vistaは「Atok2008」を入れていますが、Vistaの方にこのIME2010を入れてみました。
◆2010/6/27
 ExcelのプログラムでIMEの日本語入力の切り替えは出来ないかなと ? このテーマで金曜日の夜は、参考書を探したり、ネットでマクロを探したりしていましたが、気付くとパソコンの前で寝ていました。
 昨日は4時前に目が覚め、会社に行き用事を済ませた後、再びこのテーマでネットを調べ回ったのですが、Send Keysを調べても、「半角/全角」や「カタカナ/ひらがな」のキーを取得する方法がありません。Altキーは % で表せることは知っていますが…
 それよりも、私はIMEのプロパティを開いては、切り替えていたのですが、そんな面倒なことしなくても、

「ローマ字入力」と「かな入力」を切り替える

キーボードを使って簡単に切り替える
日本語入力システムが“オン”のときに、「Alt」キーを押しながら、[カタカナ・ひらがな・ローマ字]キーを押します。
このキーを押すごとに、かな入力/ローマ字入力が切り替わります。

--------------------------------------------------------------------------------

「IMEツールバー」を使って簡単に切り替える
「IMEツールバー」のKANAボタンをクリックすることで、簡単に入力方式を切り替えられます。

--------------------------------------------------------------------------------
の方法があることを知りました。
 こんなに簡単なら(というかウチでは、切り替えたりしませんので、こんな方法は知りませんでした)、わざわざマクロを作る必要もありません。
◆2010/6/24
 先日某自動車メーカーで事件があったようです。私はTVニュースも見ていないし、新聞も読んでいません。フン !
 昨日載せたエルトン・ジョンのCandle In The Wind はマリリン・モンローに捧げられた曲。そしてダイアナ妃に捧げられた曲。
 どちらも恐らく謀殺ですからね・・・
◆2010/6/24
David Bowie Across The Universe
 Beatlesのジョン・レノンの名曲、Across The UniverseをDavid Bowieがカバーした曲。
◆2010/6/24
David Bowie-Wild Is The Wind
◆2010/6/24
 仕事で私の後進とおぼしき若い人に、自分の私物のPCを使わず、オレの後にあるPCを使えよと言いました。但しオレは、かな入力だぞ、ローマ字入力への切り替えは分かるよな・・・ まてよ、今度はExcelのプログラムでIMEの日本語入力の切り替えは出来ないかなと ?
 この前の日曜日に小郡まで自動車免許の書き換えに行って、その帰りに探し当てた新幹線の撮影地、ここへ行ってみたいと思ってましたが、この土日は雨です。曇りなら、田んぼの畦の草刈りでもするか。
 そして、先程書いた案件のプログラムを考えてみるかな。難しそう。ExcelでWindowsの制御ですから。
 VBなら出来ると思いますが、私の持っているのは6.0ですから。Vistaにも7にも入りません。7のXP互換モードを使えば入るのかも知れませんが、そこまでやる気はありません。
◆2010/6/23
Candle In The Wind: A Princess Diana Tribute
◆2010/6/23
Elton John - Candle in the Wind 1997 (Princess Diana)
◆2010/6/22
 私が、この1ヶ月間で購入したExcel.VBAの書籍は金額にして2万円近くになりました。でも私がこうしたいと思いついて、コードを書こうとしても、その解はありません。それに近いものを見つけ応用ですね。
 10日位前に、何人かの方に、Excelの添付ファイルをメール送信する、毎日、メールソフトで定型文から件名、本文をコピーして送信する。やってられるか。
 そしてある書籍を参考に、マクロで自動送信する。そしたら、NumLockがOffになっているのに気付き、Onにするためにsend keysを調べる・・
◆2010/6/22
 さて、今夜焼酎を飲みながら書いたのは4つのファイルに以下のコードを書いただけです。今夜はちゃんとベッドで寝るぞ。

Sub 併合読込N()
'
' 併合読込N Macro
' マクロ記録日 : 2010/6/22 ユーザー名 : ettomio
'
Dim Ret As Integer

Ret = MsgBox("「確定一覧.xls」は更新されていますか?", vbYesNo)
If Ret = vbYes Then
Sheets("併合読込").Select
Application.Run "○○配車NN.XLS!併合読込"
End If
End Sub
◆2010/6/22
 昨年2月から3月に作った「確定一覧.xls」をこの土日で大幅に改善して昨日はその初日。上手く動いてくれました。
 昨夜はその安堵感かな。夜8時半頃、軽トラの中で焼酎飲みながら、煙草を吸ってたのですが、気がついたら12時前。すっかり眠っていました。慌てて2Fに上がりベッドに横になりました。今日そのファイルの「メニュー」シートにある手順書から5項目を削除しました。
◆2010/6/21
 すでに1年以上前に作ったファイルを今度はプログラムコードを入れ始めた。今、毎日6〜7点のファイルを使っていますが、徐々に書き換え始めています。私がこれからもずっと使うなら兎も角、いずれ後進にゆずることになります。人が作ったファイルですから、何をされるか分からない。だからエラー処理を入れ始めたということかな。
 そして焼酎飲むと私は天才プログラマーなんてたいそうなこと書いていますが、ある意味当たっていますね。焼酎飲むと怖いモノがなくなり、これは駄目だろうというようなコードも書きますからね。勿論エラーになりますが・・・
◆2010/6/21
 私が、ウチで仕事に使うプログラムを何故書くのか・・・ ウチだったら誰も邪魔しないし、煮詰まったら外の軽トラの中で、焼酎飲みながら、煙草を吹かし、処理が浮かぶまでじっくり考えられます。昔言った、カメラとパソコンはネクラのオモチャ。趣味ですね。試行錯誤してコードを書き、動いたら、やった ! これはもう私にとってはゲームなんです。最近、10年前にVBに夢中になってた頃の感覚が少しばかりよみがえってきました。
 プロと同じように納期があります。翌朝は使うのですから、エラーの出るようなプログラムではすまされません。
◆2010/6/21
 土曜日の朝会社から戻って朝っぱらからオフクロの処で焼酎をちょっと飲んだら、台所のテーブルでそのまま昼頃まで寝てしまいました。
 目が覚めて、昨年作った、「確定一覧」ファイルのアイデアがふと閃きました。やはり焼酎飲まないと駄目か・・・
 その時点で親会社に対して6/22納期の各製品の数量内訳が出ています。ところが、メーカー直納品は、前の日の21納期の数字を使わなくてはなりません。
 これまでは、それらの製品に対しては、右の方の表から前日21のデータを拾い、22のデータは右に明日まで眠っていろとやっていました。直納品が殆どなので、「確定一覧」ファイルはツギハギだらけとなり、マクロボタンもいくつもあります。ボタンを押し忘れると大変なことになります。
 そこで、「併合」シートの右に「併合old」シートを作り、21のデータはそこにコピーをかけ、6/22のデータを「併合」シートにコピーするようにしました。よって6/21のデータが必要な製品は「併合old」から読み出します。この処理に夜までかかりました。
 さて、昨日免許の書き換えから帰って、また考えてみると、また新たな問題を見つけました。「併合」と「併合old」の日付を取得し、= なら書き換えできないようにしました。しかし、まてよ。6/22と6/21は違うから書き換えが出来る。そうすると、どちらも6/22のデータというとんでもないことになる可能性もあります。このあたりは皆様には関係のないことですし、省きますが、夜焼酎を飲みながら、11時頃処理を思いつきコードを考えて書き直し、検証したら12時頃になっていました。

Sub kakutei1読込前処理()
'
' kakutei1読込前処理 Macro
' マクロ記録日 : 2010/6/20 ユーザー名 : ettomio
'
'「はい」なら、外部のファイルにバックアップを取り、マクロの実行、
'「キャンセル」なら何もしない。
' Application.Run "確定一覧.XLS!kakutei1日付確認"で
' "○○"シートと日付が同じならデータは取り込まない。
' マクロはExit Subにより抜けるから、コピーは取らない。
' 日付が違えば、マクロを最後まで実行。

Dim d1 As String
Dim d2 As String

Dim Ret As Integer

Application.Run "確定一覧.XLS!kakutei1日付確認"
d1 = Range("T4").Value
d2 = Range("G2").Value

If d1 = d2 Then
MsgBox "すでにデータは取り込まれています", vbOKOnly
Exit Sub
End If


Ret = MsgBox("「併合」データのバックアップを取ります。よろしいですか?", vbYesNo)
If Ret = vbYes Then
Sheets("併合").Select
Application.Run "確定一覧.XLS!併合読込バックアップ"
Sheets("併合").Select
Application.Run "確定一覧.XLS!併合oldにコピー"
Sheets("○○").Select
Application.Run "確定一覧.XLS!kakute1読込"
End If
End Sub

 なお、土曜日に作った「併合old」から1日前のデータを抜くために各セルに次の関数が入っています。
=IF(IF(IF(COUNTIF(併合old!$E$1:$E$70,$AW12)=1,VLOOKUP($AW12,併合old!$E$1:$Q$70,6,FALSE),"")="",0,VLOOKUP($AW12,併合old!$E$1:$Q$70,6,FALSE))+IF(IF(COUNTIF(併合old!$E$71:$E$120,$AW12)=1,VLOOKUP($AW12,併合old!$E$71:$Q$120,6,FALSE),"")="",0,VLOOKUP($AW12,併合old!$E$71:$Q$120,6,FALSE))=0,"",IF(IF(COUNTIF(併合old!$E$1:$E$70,$AW12)=1,VLOOKUP($AW12,併合old!$E$1:$Q$70,6,FALSE),"")="",0,VLOOKUP($AW12,併合old!$E$1:$Q$70,6,FALSE))+IF(IF(COUNTIF(併合old!$E$71:$E$120,$AW12)=1,VLOOKUP($AW12,併合old!$E$71:$Q$120,6,FALSE),"")="",0,VLOOKUP($AW12,併合old!$E$71:$Q$120,6,FALSE)))
 勿論参照位置は各セルみな違います。
◆2010/6/21
 昨日は、朝5:20にウチを出て小郡に行きました。運転免許の更新です。仕事帰りに缶チューハイと煙草を買って、ウチに帰ろうとしたらパトカーに捕まりましたからね。一旦停止の不履行です。ちょうど7時に交通センターに着きましたが、もう何台か車が来ていました:30受付のところ、日曜日は人が多いので8:00から受付が始まったのですが、講習は9:30から、なんと1時間待ち。10:30に指名手配写真みたいな免許証を貰いましたが、せっかく小郡まで来たからと、あれは防府市になるのかな、新幹線の撮影場所を探しました。西のトンネルの出口、そして1km先の東のトンネル近くを山に入ったりして1時間半ばかり探しました。今度行くときは長靴がないとマムシが怖いな。
◆2010/6/17
on error go to resume
このコードを書けばエラーがあっても次のコードに進んで楽なんですけどね。
でも私の書いているいくつかのファイルには、まだ一切このようなコードは入れていません。どこがエラーなのか分からなくなるから・・・
 数ヶ月前、エラーで無限ループに入って、Excelは止まるは、Windowsは不安定になって、再起動も効かず、無理矢理電源コードを引き抜いたこともあります。
 その時もエラー処理のコードは書かなかったですね。この程度で、エラー処理してたら、先々困ると、一生懸命ない頭でコードを書き換えました。
◆2010/6/17
my heart will go on English and Spanish subtitiles
◆2010/6/17
Bonnie Tyler Making Love Out Of Nothing At All
◆2010/6/17
Making Love out of Nothing At All- Sarah Geronimo
◆2010/6/17
SARAH GERONIMO - BOHEMIAN RHAPSODY
◆2010/6/17
Queen - Bohemian Rhapsody [ High Definition ]
◆2010/6/15
air supply making love out of nothing at all (live)
◆2010/6/15
 エア・サプライで最も好きだった曲。
AIR SUPPLY - MAKING LOVE OUT OF NOTHING AT ALL
◆2010/6/15
 あの名曲を、オーストラリアのグループ、エア・サプライが歌うと・・・
もう30年近く前ですが、カミサンと上に居た頃、エア・サプライのコンサートに行きました。長男がお腹の中にいました。派手ではないシンプルな構成のコンサートでしたが、澄み切った声がホールに響きました。この曲は演奏しなかったな。
 Air Supply - Without You
◆2010/6/15
Paul McCartney, Rod Stewart, Joe Cocker & Eric Clapton
◆2010/6/15
 私にとって凄く懐かしい歌を見つけました。
Badfinger - Without You - Pete Ham
◆2010/6/14
私と、不倫関係になってもらえませんか?
こんな馬鹿な ! こんなメールが届くのか・・・
宛先は、登録している女の子も普通の大学生だったり、少しエッチな人妻です
えっ !?
私のアドレスはオリジナルだと、迷惑メールに辟易してブロックしています。
HPに載せてるアドレスもヤフーのアドレスです。
ヤフーも最近は減りましたが、それでも100件位が迷惑メールです。
上記のメールをプロパティで調べると
To: =?iso-2022-jp?B?GyRCRVBPPyQ3JEYkJCRrPXckTjtSJGJJYURMJE5CZzNYQDgkQCRDJD8kaiEiPi8kNyUoJUMlQSRKP006SiRHJDkbKEI=?=<>
何だ、これ ?
これでは歯が立たない。ただ、迷惑メールに登録するだけです。
◆2010/6/14
 昨日、雨の中、会社に出て、毎日の生産報告とか、あるいは別な会社にのExcelファイルを添付して、メール送信するのを自動にしてやろうと、コードを書き、今朝、実際に実行しました。10時40分頃にも別な処に自動送信しました。その後、テンキーで数字を打とうとしたら、打てません。見るとNumLockのランプが消えています。おかしいな ? こんなの触っていないのに・・・
 夕方、自分の処にテスト送信しました。やはりこれがNumLockをOffにしている。マクロを開いて、昔のWindows3.1のAutoExec.batのように NumLock=ON と書いたら赤文字が出ました。エラーか・・・
 さてどうしたらいいんだろう。幸い昨日書いた時に参考にした書籍は持って行っていたので、SendKeysを探しました。色々試しましたが、赤文字。
 何処かに参考になるのはないかなと探し、これでいけるかもと

Sub numlock()
' numlock Macro
' マクロ記録日 : 2010/6/14 ユーザー名 : ettomio
       SendKeys "{NUMLOCK}", True
End Sub

 のマクロを作りました。NumLockをOffにしてマクロを実行すると、ランプが点きました。これでいけるかな。昨日書いたコードのEnd Subの前に上の1行を入れました。
◆2010/6/14
 早朝、ふと私の使っているExcelファイルをもっと使い易くしてやろうと、昼休みに関数を書き始めたのですが、見事にエラー。へ ウチで焼酎飲まなきゃ駄目か・・・ 14時過ぎにふと思いついて、パソコンの処に戻り、キーを打ったのが以下の関数です。

=IF(S2=0,"",IF(ISERROR(VLOOKUP(S2,'D:\確定一覧\[確定一覧.XLS]併合'!$E$121:$G$1038,3,FALSE)),"",VLOOKUP(S2,'D:\確定一覧\[確定一覧.XLS]併合'!$E$121:$G$1038,3,FALSE)))

 これ、見られた方には全く役に立ちません。ただ、後進に譲るときに少しでも簡単にしてやろうと・・・ 以前にも書いたように、簡単にすればそれだけ内部構造は複雑になります。
◆2010/6/13
 さて今朝は予報通りの雨。昨日書いていたように、毎日の添付ファイル付きの報告メールをマクロで自動で送れるように設定しに行きました。
 まず、outlookexpressからoutlookに設定を引き継がせようとしましたが、これが出来ない。えっ 自動で引き継いだ筈だけど。
 じゃ、普段は今まで通りoutlookexpressを使って、マクロで送るときだけoutllokを使うか・・・ さてその設定で躓きました。popサーバーとsmtpサーバーが書類に書いてない。暫くネットで調べていて分かりました。
 で、Excelでメール送信.xlsを作りまして、以下のマクロを書いています。
Sub 生産報告送信()
  Set myOL = CreateObject("OutLook.Application")
  Set myMail = myOL.CreateItem(0)
  myMail.To = "○@○○.co.jp"
  myMail.Cc = "△@○○.co.jp;□@○○.co.jp;◇@○○.co.jp;■@○○.co.jp"
  myMail.Subject = "○○生産報告です。"
  myMail.Body = "お世話になります。添付の通り生産のご報告を致します。"
  Set myAttach = myMail.Attachments
  myAttach.Add "D:\○○\生産報告書\生産報告書NN.xls"
  myMail.Display
  myMail.send
  Shell "outlook.exe", vbMaximizedFocus
  Application.Wait Now + TimeValue("00:00:02")
  SendKeys "%tea", True
End Sub
◆2010/6/12
 今日は先週に続いて、2回目の田植えをしました。無事終了して、1年に2回しか使わない田植機を洗って片付けました。
 午後は安心したのか、隣のオフクロの処で2時間半眠ってしまいました。
 さて夕方、焼酎の肴というか、明日は雨予想なので、またもExcel・VBAの本を買いに行きました。
 仕事で毎日、数名の方にメールで生産報告のExcelのファイルを添付ファイルにして送信していますが、これをマクロで自動にしてやろうと思います。定型文をコピーしては、添付ファイルを送るのが煩わしいので。私の後のネットに繋がっているパソコンは、メールソフトをoutlookexpressにしているので、明日は雨だし、ちょっと会社へ行って、outlookにし、メール送信のマクロを作ろうと思います。私のいくつかのアドレスで、Ccのテストも済ませています。
◆2010/6/10
 試験運用というか、すでに実際に使用しているプログラムに不具合が出ました。ある車種の今までの色んな部品はCKD(ノックダウン)は、8:30指定だったのです。8:30はCKDとみなして配車マスターから0を検索させていました。それ以外は全て量産。ところが今度入ってくる部品は同じ車種なのに8:30は量産、13:30にCKDが入っていました。仕事の合間、あるいは昼休みに考えたのですが、知恵が出ません。おまけに今日は関数の本を1冊も持って行っていませんでした。
 夕方苦肉の策で考えたのが今までI列に
=IF(D3="","",VLOOKUP(D3,配車マスター,2,FALSE))
 として使っていたそのすぐ右のJ列に
=IF(E3="","",IF(LEFT(E3)="W",0,I3))
 を入れて動かすことにしました。
 しかし、帰宅して焼酎を飲むと天才プログラマー ? になる自分にはどうも納得出来ません。さてやるか・・・今までのI列にJ列の関数をネストして
=if(e3="","",if(left(e3)="W",0,vlookup(d3,配車マスター,2,False)))
 これで完成です。ファイル全体を書き換えるのに10分とかかりませんでした。ただ、焼酎を飲みながら書きますので、翌早朝に試すとバグが見つかるんです。
◆2010/6/9
 私が最近作ったExcelマクロを添付ファイルにしてお送りしてもいいですよ。ただ、私は10年以上前にマクロウィルスは自分でも作れると思っていましたし、最近読んだ書籍から、完全に相手のパソコンをクラッシュさせるマクロは作れると実感しています。ファイルを開いた瞬間ですから、気付いたときには遅い。
 私がそんな攻撃を受けたら ? どうぞやって下さい。私がVistaもWin7も最上位のultimateを導入しているのは、完全バックアップ機能があるからです。定期的にバックアップは取っています。40分で、Vista、Win7、そしてあらゆるアプリ、インターネット接続設定などすぐに元に戻します。
◆2010/6/9
 今夜も昨夜に続いて焼酎を飲み乍ら、Excelのプログラミングです。
 このページをA4に1枚に収めて印刷したいというとき、
印刷プレビュー→設定→ページタブ→次のページ数に合わせて印刷→横1×縦1にチェックを入れ、用紙サイズはA4と設定して印刷しますね。
 それを昨夜読んだExcelマクロの書籍を参考に・・・ マクロ名は頁1印刷としていますが、
これは変えたって構いません。

Sub 頁1印刷()
  With ActiveSheet.PageSetup
    PaperSize = xlPaperA4
    Zoom = False
    FitToPagesWide = 1
    FitToPagesTall = 1
  End With
  ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

 これで確実にA4、1ページに収まりますが、余りに大きなサイズを1ページにしたって読めないのは当然ですね。
 それの回避策は昨夜、焼酎飲みながら作りました。vlookup関数とフィルタ機能を使っています。
◆2010/6/7
David Bowie - Modern Love - Live Aid 1985
◆2010/6/3
 このところ、よくプログラミングのこと書きますが、プログラムというのは数学ではありません。数学だったら、数学能力のない私には書けません。
 プログラムというのは私は論理だと思っています。プログラムによく出るi=i+1なんてのは数学では絶対にあり得ません。この場合、左辺=右辺ではなく、プログラムでは右辺を左辺に代入するということになります。
 さて、私が60になるまでに作り上げたいプログラムがひとつあります。コンピュータというのは演算と記憶は人間の遙か上を行きます。しかし、人間の優れているところは、応用が効くということですね。コンピュータは人間の作った命令通りにしか動きません。
 これを人間がここでブレイクをかけて他の処理をさせるということを、プログラミングしてみたい。データベースソフトのAccessと演算処理のExcellとの掛け持ちになるかも知れません。今のところまったく分かりません。Accessが処理能力が遅いというのは昔の話です。こ こまでハードが発達した今、Accessが遅いということは最早ありませんから。
◆2010/6/3
 早くも6月、夏に入ってしまいました。昨夜ふと思ったのですが、今年は2、3日前に蛍を1回見たきりです。おかしい。例年だったら源氏蛍をいくつも見るのに・・・ そしてウチの田植えの頃は一回り小さな平家蛍が舞う筈なのに。5月は気候としては過ごしやすかったです。大陸の高気圧でしょう、湿度もなく、空気も澄んで生活にはいいんですが、この時期にまだ布団を被って寝るというのも何かヘンです。例年ですと5月には真夏日が何日かありましたし、2年前に熱暴走でパソコンのグラボを壊したのも5月です。
 この土曜日に田植えをし、日曜日は別な田を代掻きして、来週の土曜日に植えるつもりですが、こう太平洋高気圧が弱いと、梅雨前線を押し上げるのか・・・
 雨ばかり降りましたから、田植えをするには水があるのですが、梅雨が来なければ乾いてしまいます。
 さて、焼酎のせいで昨夜の記憶がまたありません。昨夜はカミサンの帰宅が遅かったので、自分で風呂を入れて入ったのは確かなのですが、今朝目覚めると、目覚ましはセットしていないし、それでも下着姿で寝ていました。4時半に外に出て、軽トラの中で煙草を吸うと、コップになみなみと焼酎が水で割られて置いてあります。もったいないからと朝飲むわけにもいきません。昨夜はパソコンも付けていませんね。う〜ん、どうしたんだろう。記憶が飛んでいますね。

先頭に戻る    過去の日記