2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

« 2007年4月 | トップページ | 2007年6月 »

2007年5月30日 (水)

◆E2000Tools(第3回目「大文字、小文字、全角文字、半角文字、ひらがな、カタカナ変換」機能)

第3回目の今回は、「大文字、小文字、全角文字、半角文字、ひらがな、カタカナ変換」機能です。

皆さんは、「あっ小文字で入力すればよかった」「全角を半角に統一したいなぁ」などと後から思ったことはありませんか?そのような場合は大抵再入力されているのではないでしょうか?
当機能は、選択範囲のセルの文字列に対してアイコン一発クリックで、大文字、小文字、全角文字、半角文字、ひらがな、カタカナを相互に何度でも変換することができます。
Wordには標準機能として提供されていますがなぜかExcelにはありませんね。というわけで作成してみました。意外と便利です。

このメニューアイコンE2000tools_3 をクリック

よかったらご使用になってみてください。
E2000Toolsはこちらhttp://cat.zero.ad.jp/iizy/のDownloadからダウンロードできます。

2007年5月29日 (火)

◆E2000Tools(第2回目「アクティブな列をキーにして検索値取得」機能)

第2回目の今回は、「アクティブな列をキーにして検索値取得」機能です。

皆さんは、作業中のシートのセル値に該当する他のシートの値を検索したくなることはありませんか?つまりシート間で同じ値があるか比較検索したり、比較した結果該当したらその行のある列の値を取得したといったことです。そのような時は大抵、VLOOKUP関数を使用されると思います。ただVLOOKUP関数は比較先の列がソートされていなければならないとか、比較範囲内に列が追加や削除された場合、取得する列番号を変更しなければならないとかいろいろ制約があります。さらに、大量の行に関数を定義するとExcelが重くなりますね。当機能はVLOOKUPの機能をマクロで実現、拡張したものです。
使い方は以下の通りです。

このアイコンE2000tools_2_2 をクリックした後に
E2000tools_2_1_1

(1)アクティブシートで検索したいセル範囲を選択します。複数列選択した
   場合は最左列と最右列がそれぞれキーとなります。
(2)アクティブシートに検索結果を貼り付ける列を指定します。
   デフォルトでは最右列が設定されています。
(3)リストボックスから、検索先のブックを選択します。
(4)Nextボタンを押下し、検索先ブック内のシートを選択します。
E2000tools_2_2_2

(5)検索先シートで検索する列を指定します。2列キーの場合は0(ゼロ)
   以外の列をきちんと指定します。
(6)検索列で見つかったときに取得したい値の列を指定します。
   取得する列は3-10とか3,4,6,7とか複数指定が可能です。例を参考にしてください。
(7)OKボタンを押下して実行します。見つからない場合は”見つかりませんでした”
   が出力されます。
   モードレス画面なので、フォーム画面が表示されている間でもシートを操作する
   ことが出来ます。
   続けて検索したり選択位置に戻りたい場合は、検索位置へジャンプボタン
   を押下します。

ちなみに、A1表示でもR1C1表示でも検索指定できます。また、同じブック内のシート同士あるいは新規ウィンドウに対しても検索できます。

よかったらご使用になってみてください。
E2000Toolsはこちらhttp://cat.zero.ad.jp/iizy/のDownloadからダウンロードできます。

2007年5月28日 (月)

◆E2000Tools(第1回目「ウィンドウの並べ替え」機能)

今回から、私が作成したE2000ToolsというExcelツールの機能をご紹介していきます。
ますはじめに、E2000Toolsとはどういうツールかというと、本体はただのExcelファイルですが、このファイルを起動すると、Excelに独自ツールバーが表示されるようになります。そのツールバーにはExcelで作業する上で様々な便利機能が盛り込まれています。
今回からその膨大な機能の中から皆さんが頻繁に使っていただけるのではないかと思う機能をピックアップしてご紹介していきます。
ちなみに私の使用しているExcelは2000と2003ですが、今後「この機能はExcel標準にはない」とか言及するかとは思いますが最新バージョンのExcelには実装されているかもしれません。その辺はどうかご了承ください。
なお予めお断りしておきますが、当ツールを使用した際のいかなる損害にも私は責任を負えませんので、ご自身の責任と冒険心と好奇心とでご使用ください。ツール実行前のブックの保存を励行してくださいね。(私も日常的に使用しているのExcelが落ちたりはしないはずですが)

第1回目の今回は、「ウィンドウの並べ替え」機能です。

皆さんはExcelで作業をする場合はブックは1つだけ開いて行いますか?おそらく複数のブックを開きながら作業することが多いのではないでしょうか?場合によっては10とか20とか開いたりしませんか?そういった場合、大抵はExcel標準機能であるメニュー「ウィンドウ」→「整列」→「重ねて表示」などブックを整列したり、「ウィンドウ」の下部に表示されるウィンドウを切り替えたり、Ctrl+Tabキーで切替えたりすると思います。いずれにしても手間が掛かったり希望のウィンドウにたどり着くのに時間が掛かりますね。そこでE2000Toolsはアイコン一発クリックで以下の様々な並べ替えを提供しています。

このアイコン E2000tools_1_2 をクリック

(1)ウィンドウを標準化し重ねる
  ウィンドウを標準にして重ねます。
(2)ウィンドウを最小化
  ウィンドウを最小化表示します。
(3)左右に並べて表示
  ウィンドウを上下に並べます。
(4)上下に並べて表示
  ウィンドウを左右に並べます。
(5)重ねて表示
  ウィンドウを重ねて表示します。

(3)~(5)はExcel標準の整列機能と同等ですが、(1)(2)はオリジナル機能です。(2)は開いている複数のブックを全て最小化します。(1)は(2)で最小化したブックを重ねて表示しなおします。私がもっとも使用頻度が高いのは重ねて表示ですね。ウィンドウの作業スペースが狭くなるのがちょっと難点ですがブックタイトルが一望できて切り替えが容易になります。
よかったらご使用になってみてください。
E2000Toolsはこちらhttp://cat.zero.ad.jp/iizy/のDownloadからダウンロードできます。

2007年5月27日 (日)

▼ダイエット大作戦(83Kg台突入)

やっと83Kg台に突入してきました。健康診断も近づいてきているのでとりあえずひとつのチェックポイントということで82Kg台で計測といきたいところ。まだまだ肥満人から普通人へは道のり遠いですががんばろう、着実に成果が出ていることだし。いやぁ、でもジョギングするには厳しい季節になってきましたね。もう、暑いのなんのって。いつも20;00ごろ家から1Kgくらいの公園までウォーミングアップで走ってから準備体操をするのですが、もうその頃には汗が吹き出るようになってきました。基礎代謝が上がっているからなのか仕事中などの平常時も暑い暑い。いよいよ梅雨の6月で走れる日が少なくなる季節ですが、健康診断が終わってからも怠けずに継続していこう、めざせ普通人!

ダイエット大作戦20070527

2007年5月26日 (土)

¥Money(投信生活070526)

最近にしては珍しく3日連続の基準価額上昇で損益180万プラスまでいったと思ったら金曜日1日で20万減益とは恐ろしいかな株式投信!手違いでSBIアセット ニュージャパン・インデックス・ファンドの購入タイミングを逃してしまいショック、これで高配当だったら悔やみきれないなぁ。今月唯一の高配当狙い投信だったのに。その代わりといっては何ですが新光ピクテ 世界インカム株式を買ったので長期運用で大事に育っていって欲しいものだ。

現在の運用成績(2007/5/26) (網掛けは売却もしくは未購入で最終損益確定のもの)

2007年5月25日 (金)

◆Excel VBA(定型フォーマットのExcelを一気に開いて複数作成するマクロ(第2回))

今回は前回に引き続き定型フォーマットのExcelを一気に作成するマクロを提示します。
前回の仕様を実装したものが以下となります。仕様の詳細はこちらhttp://peiyorin.cocolog-nifty.com/blog/2007/05/excel_vba_7a7b.htmlをご覧ください。

'申請書フォーマット
Const cWsNm As String = "申請書"
Const f_部署cel As String = "C2"
Const f_申請者cel As String = "C4"
Const f_承認者cel As String = "C6"
Const f_承認日cel As String = "C8"
Const f_機能名cel As String = "C10"
Const f_依頼事項cel As String = "C12"

'管理表
Const cStRow As Integer = 3
Const 部署col As Integer = 2
Const 申請者col As Integer = 3
Const 承認者col As Integer = 4
Const 承認日col As Integer = 5
Const 機能名col As Integer = 6
Const 機能詳細col As Integer = 7
Const 依頼事項col As Integer = 8
Const 申請日col As Integer = 9

Sub 申請書生成()
    Const cDefPath As String = "c:\work"
    Const cMyWs As String = "管理表"
   
    Set oMyWs = ThisWorkbook.Sheets(cMyWs)
    Set oFormWs = ThisWorkbook.Sheets(cWsNm)
   
   
    'フォルダ指定
    ChDrive Left(cDefPath, 1)
    ChDir cDefPath
    FileDir = Application.GetSaveAsFilename("DUMMY", "Excelファイル(*.xls),*.xls", , "■■■ 保存先フォルダ指定 ■■■")
    If FileDir = "False" Or FileDir = "FALSE" Then Exit Sub
    FileDir = Mid(FileDir, 1, InStrRev(FileDir, "\") - 1)
   
   
    '申請書生成
    For Each oSel In Selection
        lRow = oSel.Row
        If oMyWs.Cells(lRow, 申請日col).Value <> "" Then GoTo next_oSel
       
        '申請書フォーマットコピー
        oFormWs.Copy
               
        '情報貼り付け
        Set oActWs = ActiveSheet
        a = oMyWs.Cells(lRow, 部署col).Value
        b = oMyWs.Cells(lRow, 申請者col).Value
        oActWs.Range(f_部署cel).Value = a
        oActWs.Range(f_申請者cel).Value = b
        oActWs.Range(f_承認者cel).Value = oMyWs.Cells(lRow, 承認者col).Value
        oActWs.Range(f_承認日cel).Value = oMyWs.Cells(lRow, 承認日col).Value
        oActWs.Range(f_機能名cel).Value = oMyWs.Cells(lRow, 機能名col).Value
        oActWs.Range(f_依頼事項cel).Value = oMyWs.Cells(lRow, 依頼事項col).Value
            
        oMyWs.Cells(lRow, 申請日col).Value = Now()
       
        ActiveWorkbook.SaveAs Filename:=FileDir & "\" & Format(Now(), "yyyymmddhhmmss") & "_" & a & "_" & b & ".xls"
       
next_oSel:
    Next

    Set oFormWs = Nothing
    Set oSel = Nothing
    Set oActWs = Nothing
    Set oMyWs = Nothing
   
End Sub

それでは解説していきます。
例のごとく、申請書用フォーマット、管理表の列番号やセル位置を定義してます。
モジュールですが、管理表シートおよび申請書フォーマットシートをオブジェクトにセットし、Application.GetSaveAsFilenameで申請書の保存先を指定するダイアログを表示します。デフォルトで表示するフォルダをcDefPathで定義しています。不要であれば削除してください。
For Each oSel In Selectionで予め選択した行数分処理を繰り返します。まず、処理対象行の申請日が空白でなければ処理を飛ばしています。これも無条件に申請書の再作成をする場合は削除してください。次に、申請書用フォーマットシートをコピーして、管理表の各項目を申請書の項目へ設定し、申請日に処理日を設定し、申請書を格納フォルダに保存して1件分の処理が完了です。
皆さんの仕事にあった形にカスタマイズしてご利用ください。
管理一覧.xlsをアップロードしておきますので、よかったらダウンロードしてみてください。

「kanri_sample.EXE」をダウンロード

以上で終了です。

次回から、私が作成したツールであるE2000Tools.xlsの機能について1日1つずつ1ヶ月くらいかけてご紹介していきます。きっと皆さんを便利にさせる機能があると思います。お楽しみに。ツール本体はこちらhttp://cat.zero.ad.jp/iizy/のDownloadからダウンロードできます。

2007年5月23日 (水)

◆Excel VBA(定型フォーマットのExcelを一気に開いて複数作成するマクロ(第1回))

前回までの話題は「複数Excelを開いて一覧表を作る」でしたが、今回からはその続きとして、申請者側の立場から、定型フォーマットのExcelを一気に複数作成するマクロについて書いてみたいと思います。これは、ある管理情報があって、その情報を元に申請書フォーマットに項目を転記して、複数作成するような場合を想定しています。
つまり、各担当者は申請を作成する際に、いちいち雛形の定型フォーマットをコピーして、必要事項に手入力するという作業をやめて、予め申請に必要な情報を一覧として整備しておき、そこから必要に応じて申請書を一気に複数作成してしまおうという省力化マクロです。
一覧があるのならその一覧を渡せばいいじゃないかと疑問に思う方もいらっしゃると思いますが、取りまとめ者(部門)とのやり取りはとかく『定型のフォーマットで申請しないと受け付けません』とか、内部で管理している一覧は申請には不要な項目が含まれていたりするので『こんな一覧を各担当者から申請されても解りません』とか言われてしまうものです。

では、その申請書作成マクロですが、今回は以下の要領で考えてみたいと思います。
<前提>
(1)予め申請に必要な情報をまとめた管理表.xlsがある
(2)管理表.xlsには管理表シートとは別に、申請用フォーマットシートを保持している
(3)申請書作成マクロは管理表.xlsに実装するものとする

<仕様>
(1)管理表シートに実行ボタンを配置する
(2)作成したい行の任意のセルを複数選択した状態で、実行ボタンをクリックすることで処理を実行する
(3)生成された申請書.xlsの格納先フォルダを指定するダイアログを表示する
(4)選択した行の申請日がブランク(=未申請)の場合、以下の(5)~(6)の処理を繰り返す
(5)申請用の新規ブックを作成し、申請用フォーマットシートをコピーする
(6)その新規ブックに対し、管理表シートから申請に必要な列の情報を流し込む
   上記(3)で指定した格納先フォルダに新規ブックを保存し、申請書作成済みのマークである”申請日”列に日付を設定する
   
仕様上、様々なインタフェースが考えられますが、読者の皆様の事情に応じていろいろ拡張してみてください。
格納先フォルダの指定が面倒であれば、プログラム内に保持しても良いし、申請日に関わらず再申請できるようにするなどが考えられると思います。申請用フォーマットは今回は処理を簡単にするために管理表.xlsのシートとして保持する仕様としましたが、フォーマットの変更を想定して、別ブックとして外出しにするのが現実的かもしれません。

それでは次回から実際のマクロを解説していきます。

2007年5月21日 (月)

◆Excel VBA(複数の定型フォーマットブックを開いて一覧表を作るマクロ(第2回))

第1回からだいぶ間隔が開いてしまいましたが第2回です。
少しおさらいをすると、各部門から申請された複数の申請書を一覧化しようというものでした。詳しくはこちらをご覧ください。http://peiyorin.cocolog-nifty.com/blog/2007/05/excel_vba_e3dc.html

前回の仕様をマクロにしたものが以下です。

'申請書フォーマット
Const f_部署cel As String = "C2"
Const f_申請者cel As String = "C4"
Const f_承認者cel As String = "C6"
Const f_承認日cel As String = "C8"
Const f_機能名cel As String = "C10"
Const f_依頼事項cel As String = "C12"

'申請書一覧
Const cStRow As Integer = 3
Const 部署col As Integer = 2
Const 申請者col As Integer = 3
Const 承認者col As Integer = 4
Const 承認日col As Integer = 5
Const 機能名col As Integer = 6
Const 依頼事項col As Integer = 7
Const 処理日col As Integer = 8
Const ファイル名col As Integer = 9
Const 更新日col As Integer = 10

Sub ファイル取り込み()
    Const cDefPath As String = "c:\work"
    Const cMyWs As String = "申請一覧"
   
    Set oMyWs = ThisWorkbook.Sheets(cMyWs)
   
    'クリア確認
    If vbYes = MsgBox("一覧をクリアしますか?", vbYesNo + vbQuestion, "クリア確認") Then
        lLastRow = oMyWs.Cells(65500, 部署col).End(xlUp).Row + 1
        oMyWs.Range(oMyWs.Cells(cStRow, 部署col), oMyWs.Cells(lLastRow, 更新日col)).ClearContents
    End If
   
    'フォルダ指定
    ChDrive Left(cDefPath, 1)
    ChDir cDefPath
    FileDir = Application.GetSaveAsFilename("DUMMY", "Excelファイル(*.xls),*.xls", , "■■■ フォルダ指定 ■■■")
    If FileDir = "False" Or FileDir = "FALSE" Then Exit Sub
    FileDir = Mid(FileDir, 1, InStrRev(FileDir, "\") - 1)
   
   
    'ファイル情報取り込み
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.getFolder(FileDir)
   
    For Each oF In f.Files
        If Not (IsNumeric(Left(oF.Name, 8))) Then GoTo next_oF
        If Not (oF.Name Like "*.xls") Then GoTo next_oF
       
        Workbooks.Open oF.Name, ReadOnly:=True
        Set oActWs = ActiveWorkbook.Sheets(1)
       
        lLastRow = oMyWs.Cells(65500, 部署col).End(xlUp).Row + 1
        oMyWs.Cells(lLastRow, 部署col).Value = oActWs.Range(f_部署cel).Value
        oMyWs.Cells(lLastRow, 申請者col).Value = oActWs.Range(f_申請者cel).Value
        oMyWs.Cells(lLastRow, 承認者col).Value = oActWs.Range(f_承認者cel).Value
        oMyWs.Cells(lLastRow, 承認日col).Value = oActWs.Range(f_承認日cel).Value
        oMyWs.Cells(lLastRow, 機能名col).Value = oActWs.Range(f_機能名cel).Value
        oMyWs.Cells(lLastRow, 依頼事項col).Value = oActWs.Range(f_依頼事項cel).Value
        oMyWs.Cells(lLastRow, 処理日col).Value = Now()
        oMyWs.Cells(lLastRow, ファイル名col).Value = oF.Name
        oMyWs.Cells(lLastRow, 更新日col).Value = oF.DateLastModified
            
        ActiveWorkbook.Close
       
next_oF:
    Next

    Set fs = Nothing
    Set f = Nothing
    Set oF = Nothing
    Set oActWs = Nothing
    Set oMyWs = Nothing
   
End Sub

ま、あくまでも一例であり、ロジックや実現手段はいろいろあるかと思います。
一応できるだけ汎用的にしたつもりです。それでは解説していきます。
まず、Constで定型フォーマットの入力セル位置を定義しています。ここは皆さんが使用されている定型フォーマットにあわせて修正してくださいね。次に申請書内容を一覧化する申請一覧の列番号を定義しています。後ほど、このマクロを実装した申請一覧をアップロードしますのでそちらをご覧になった方が一目瞭然でしょう。
さて、ロジック部分ですが、まず、マクロを実行する際に、申請一覧を一旦クリアするかどうかメッセージを表示させています。
次に、申請書が格納されているフォルダを指定するダイアログを表示します。実行するとわかるのですが、Application.GetSaveAsFilenameを流用しているのでファイル名に”DUMMY”がデフォルト表示されますが気にしないでください。ここの目的は格納先フォルダ名を取得することです。
次に、Set fs = CreateObject("Scripting.FileSystemObject")でFileSystemObjectオブジェクトを生成します。fsに対してGetFolderを実行して、指定されたフォルダ配下のファイルを全て取得します。For Each oF In f.Filesで取得したファイルに対して処理を繰り返していきます。まず、申請書ファイル名の規定であるyyyymmddのExcelファイル以外は処理を飛ばすように条件判断しています。先頭8文字が数字かという条件にしています。(日付か?というロジックが思い浮かばなくてごまかしています)
次に、条件に合致したファイルを開き、開いたExcelブックをoActWsオブジェクトとしています。申請一覧の最終行lLastRowを求め、申請書の入力項目を申請書一覧に貼り付け、開いた申請書を閉じて1件分終了という具合です。
申請書の入力項目以外に、管理情報として処理日、ファイル名、ファイル更新日も一覧化しています。
これで申請書を全て一覧化することができました。
申請書フォーマットと申請書一覧をカスタマイズすれば応用が利くでしょう。お試しください。

申請書一覧と申請書サンプル2ファイルを同梱しました。動作を確認してみてください。右クリックで「対象をファイルに保存」でダウンロードしてください。

sinsei_sample.EXE

次回は、申請者側の立場から、申請書を一気に複数生成するマクロについて書いてみたいと思います。

2007年5月20日 (日)

◆自動ログインツール(ネット自動操作ツールバージョンアップ)

ダイエット大作戦に引き続き連続投稿。
ネット自動操作ツールをバージョンアップ!!
検索サイトなどにたまに見受けられるリストボックを選択できるようにしました。s_@@@@@@で指定します。詳しくはsample.EXE をダウンロードしてご覧ください。サンプルには■オンライン小説総合サイトを追加しています。

▼ダイエット大作戦(今週は走れていません)

今週は仕事疲れと雨と強風とあれこれあって殆ど走れていません。数値が訳のわからない状態になってきました。体重は若干減少傾向ですが、体脂肪率が元に戻り気味?基礎代謝は上がっていると思う(会社でじっと座っているだけでもじわじわ体が熱い、特に16時ごろ)のですが体脂肪率が不安定。いつも朝一の小水直後に計っているのだが、ジョギングをした翌朝は高い傾向がある。水分は摂っているつもりだがやはり減少傾向のため朝一はドロドロ血状態なのか。。。

ダイエット大作戦20070520

2007年5月19日 (土)

¥Money(投信生活070519)

今週はAAAソブリンの55円配当がありましたが基準価額の低迷で評価価額が目減りしてしまいました。好配当日本株式オープンや日本成長株オープンの国内株式ものが最悪ですね。ピクテ・グロインやAAAソブリンなどの外国ものでなんとかプラスを確保している状態。好配当日本株式オープンも分配金でなんとか最終損益でプラスですが。でもなかなか売るに売れない状態。。。丸八証券で新光ピクテ 世界インカム株式が購入手数料無料キャンペーン中なので、グロインに続く収入源にしよかなと思案中ですが購入資金がない。どれか売らなければ。。。

現在の運用成績(2007/5/19)

2007年5月13日 (日)

▼ダイエット大作戦(なぜか体脂肪率が...)

今週は7Kmくらいとかなり距離を延ばしたジョギングが出来てきました。これと並行して夕食の炭水化物ぬきを実行しました。朝食はいつも果物とカフェオレなのですが昼食はキチンとお米やパンの炭水化物を摂取しています。体重は変わらないのですが、体脂肪率が目に見えて減少しました。ま、もともと高い数値なのですが良い傾向なのではないでしょうか。
ところで、先週から一足先にスーツを夏服に衣替えしたのですが、ズボンのベルトがきつい状態だったのがまた穿けるようになっていました。体重はほとんど変化が無いのですが体が搾れてきた証拠かな。あるカロリー計算サイトで計算したら、現在の運動(50分のジョギング)の消費カロリー1079Kcalらしい。これで摂取カロリーが把握できればもう少し科学的に検証できるのですがねなかなか簡単にカロリー計算できないらしい。来週からウェストも測定するかな。

ダイエット大作戦20070513

2007年5月12日 (土)

¥Money(投信生活070512)

今週の前半は休日明けで基準価額が大きく上昇しましたが週末にかけて全体で30万円ほど下がってしまいました。株式投信の割合が大きいので値動きが激しいですね。また、ピクテ グローバル・インカムの配当30円がありましたが、AAAソブリンの配当が来週予定されています。月末のニュージャパン・インデックス・ファンド購入に向けてそろそろ資金を準備しなければ。

現在の運用成績(2007/5/12)

2007年5月 8日 (火)

◆Excel VBA(複数の定型フォーマットブックを開いて一覧表を作るマクロ(第1回))

久しぶりのVBAネタです。
今日から数回に分けて、私の経験上いろいろな業種、部門で共通的に必要とされるのではと思われる話題として、複数の定型フォーマットブックを開いて一覧表を作るマクロについて書いてみたいと思います。
まず、ある担当者(ここは会社の社員でもよい)から取りまとめ者(部門でもよい)へ定型のExcelフォーマットを申請するというワークフローを想像してみてください。事務処理しかり、共通部品の申請しかり、各部署から特定の部署への作業依頼しかり、結構会社内もしくはプロジェクト内では一般的なフローではないでしょうか。
ここで、取りまとめ者(部門)の立場で考えてみます。大抵、取りまとめ者(部門)は申請されたExcelを開き、内容を確認し、正しければ何か処理をする、誤りがあれば申請元へ突返すといった流れですよね。申請Excelはそのまま保管でしょうか?取りまとめ者は受け取ったExcelをそのまま保管していても、内容を知るにはいちいちファイルを開かなければいけないので使い勝手が悪いですね。一覧化したくなりますね、うん。(話しの都合上ちょっと強引)

一覧化すれば、入力内容のチェックをマクロ化しておいてチェックを自動化したり、分析機能をマクロ化しておいて品質管理や統計分析などに利用することも可能になります。受け取った後の後続の処理へマクロで連動させることも考えられますね。
では、その一覧化マクロですが、今回は以下の要領で考えてみたいと思います。
<前提>
(1)申請されたExcelブックはある特定のフォルダに格納されている(固定とは限らない)
(2)申請されたExcelブックはファイル名が一定の基準に則っている(yyyymmdd_部署名_担当者名.xlsとする)
(3)申請されたExcelブックは当然同一フォーマットである
   入力項目はとりあえず以下としておく
   1 B列       C列
   2 申請部署: ┏━┓
   3        ┗━┛
   4 申請者名: ┏━┓
   5        ┗━┛
   6 承認者名: ┏━┓
   7        ┗━┛
   8 承認日  : ┏━┓
   9        ┗━┛
   10 機能名  : ┏━┓
   11        ┗━┛
   12 依頼事項: ┏━━━━┓
                 ┗━━━━┛

<仕様>
(1)予め一覧用ブックを用意し、その一覧用シートに実行ボタンを配置する
(2)処理をする前に、一覧をクリアするかどうかメッセージを表示
(3)格納フォルダを指定するダイアログを表示し、指定されたフォルダ配下の申請ブックの内、ある条件のものだけ1つずつ処理する
(4)申請されたExcelの入力内容は、一覧シートの最終行+1行目に追加貼り付けし、終わったら申請ブックを閉じる
(5)上記(3)(4)を繰り返す

仕様上、様々なインタフェースが考えられますが、読者の方の事情に応じていろいろカスタマイズしてみてください。フォルダが固定なのであれば、マクロ内に持ってしまえばよりシンプルになりますし、拡張性は保持したいがフォルダ指定が面倒ということであれば、フォルダパスをシートのどこかに持っておくことでも良いと思います。また、指定フォルダ内のブックを無条件にすべて処理したり、一度申請済みの申請書が再度申請された場合は上書きするといった実務上必要な機能が出てきそうです。さらに、実行方法ですが、一覧用ブックを開いたらカスタムメニューが追加されたり、カスタムツールバーが追加されたりといろいろ考えられますね。

今回は申請フォーマットにExcelを想定していますが、Wordの場合も当然可能です。
Wordの例は今回は割愛しますが、一覧化するロジックが知りたいというご希望があれば書いてみたいと思います。

それでは次回から実際のマクロを提示して解説していきたいと思います。

2007年5月 7日 (月)

▼ダイエット大作戦(体重変化なし、でも...)

毎週恒例のダイエット大作戦ですが、今週は走りこみました。毎日少しずつ距離を延ばして5Kmくらい走っているのかな(計っていないので感覚ですが)。先週掲げた1、2Kg減は達成できませんでしたが、体型に変化が出てきたように思います。胸囲とウエストが搾れてきた感じ(2日前までは)。週末にかけて体重、体脂肪率は若干上がり気味ですがその理由は、弟家族が遊びに来ていたので飲んで食ってお菓子にデザートとかなりカロリーを摂取してしまったためです。さらに今日は一日中雨で走らなかったし。また明日から新たな気持ちでがんばりましょう(と自分に言いきかせる)。新聞の記事に「酸素摂取量を増やしなさい」と出ていたのですが、今やっているジョギングは理にかなっているのだなと安心しました。ただ焦らず徐々に距離もペースも上げていこうと再確認しました。皆さんも安全に、適度に休養しながら健康になりましょうね。

ダイエット大作戦20070506

2007年5月 5日 (土)

¥Money(投信生活070505)

5月に入りましたので4月の運用実績が確定しましたが、基準価額の上昇に伴って最終損益がすごいことになってきました。実績を集計しはじめて1ヶ月ほどですが、3ケタプラスを叩きだしました。ま、今売却するとこの金額になるということで、全てを売却したわけではありませんが、こんなにうまくいってよいのですかね。数週間前までは基準価額が底値だったのか最悪でしたが、4月業績発表が良かったのか解りませんが上昇に転じましたね。米国の株価も上昇しているようですし、連休明けの月曜も上昇しそうな雰囲気ですね。5月購入予定の投信は少ないのですが6月には大物が控えていますので楽しみです。

現在の運用成績(2007/5/5)

2007年5月 4日 (金)

♪DVDプレーヤーからパソコンへの取り込み

前回DVDからパソコンに取り込んでいると書きましたが今回はその詳細版です。その前に、DVDレコーダーを買って2年くらい経ちますが、その前までの地上波アナログ放送+VHSビデオデッキだった時代を考えると、本当に音質が向上してうれしいものですね。それまでは微妙にノイズが混じっていたりして割り切っていましたが、今ではCD並みの高音質で録音できますからね。といっても、デジタル録音はコピーガードが掛かっていて出来ないわけですが、携帯音楽プレーヤーで聴く分には十分です。好きな曲を耳コピーして楽しんでいるのですが、一音一音がクリアで耳コピーもしやすいですしね。

ということで、どういう環境で収集しているかというと、

●DVDプレーヤー
  ・東芝 RD-X4
  ・日立 DV-DH500W

   ↓光接続

●光ケーブル

   ↓光接続

●MDプレーヤー SHARP

   ↓アナログ接続

●オーディオキャチャー Roland UA-3FX

   ↓USB接続

●ノートPC+HD-HB250SU2
  ・使用ソフト
   ・Sound it! 3.0(Free)・・・・・・・・・・・・Wave録音
   ・ぷっちでここ Ver4.21(Free)・・・・・・MP3作成
   ・SuperTagEditor(Free)・・・・・・・・・・MP3のID3タグ設定
   ・MP3Gain Ver1.2.4(Free) ・・・・・・・音量均一化
   ・Net Transport Ver1.90(Free)・・・・ストリーミングダウンロード
   ・KbMedia Player Ver2.41(Free)・・・音楽再生用、耳コピー練習用

   ↓USB接続

●メモリーオーディオプレーヤー
  ・cowon iAUDIO G3(2GB)
  ・Sansa e280(8GB)

となっています。MDプレーヤーは特に録音している訳ではなく途中に咬ましているだけなので無くても良いのですが、光接続している分気持ち程度ノイズが少なくてよいかなと思ってます。

少し解説すると、2台あるDVDプレーヤーからはそれぞれ光ケーブルを出しておいて、どちらから録音するかによって、MDプレーヤーへの接続を切替えます。最近はアニメ番組がものすごい過密スケジュールで放映されているので大変です。DV-DH500Wはデジタル2番組同時録画ができるのですが、それでも放送が重なって録画できないケースがあります。そういうときは、一昔前の機種になってしまいましたがRD-X4で録画します。大抵はDVDに残さず視聴後すぐ消してしまうのでDV-DH500WのTSモードで視聴していますがDVDにムーブしようと決めた番組はRD-X4にも同時録画します。

新OPやED、挿入歌などの場合は、DVDプレーヤーの再生と同時にパソコン側の「Sound it」で録音開始すればパソコンにWAV形式で取り込まれるという寸法です。「iAUDIO」にはDVDプレーヤーから直接接続してMP3形式でダイレクト録音する機能がありますが、音が良くない気がして使用していません。音量も調節できないですしね。取り込んだWAVファイルを「ぷっちでここ」でMP3に変換し、「MP3Gain」で音量を均一化します。「ぷっちでここ」は複数ファイルを同時にMP3に変換できるフリーソフトなので重宝してます。「MP3Gain」は外国製ですが日本語表示できるので何の不便もありません。ただ、ファイルの選択順に処理できれなくてファイル名順になってしまうので、ちょっと不満です。その理由は、「iAUDIO」では最終更新日順に再生しているのですが、後で音量変更したファイルが最後に再生されてしまうので、そこのところを一工夫しています。再生したい順番を意識したフォルダ名(例えば連番)にMP3ファイルを格納し、フォルダごと「MP3Gain」に取り込むとその順番がMP3ファイルのタイムスタンプになります。これによってアニメのOPやEDも放送開始順に楽しめることになりますし、それに飽きたらランダム再生にすればよい訳です。

ノートPCの内臓ハードディスクは28GBと心許ないので、外付けハードディスクのHD-HB250SU2を使用しています。WAVファイルとMP3ファイルを両方保存していますし、クラシック曲なども膨大ですので相当容量を食いますね。ネット上のネットラジオやストリーミングもダウンロードソフトでハードディスクに保存したりしているのでその内250GBも使い切ってしまうでしょう。バックアップ用にもう一台ハードディスクを購入しておいたほうがよいかなぁ。

NHK衛星などではCD並みの音質でクラシックやライブ番組を録音出来て、それらの音楽を全て携帯プレーヤーに収納できるのですからホントに便利な世の中になったものです。ちょっと前までは「毎日モーツァルト」でモーツァルトの音楽を収集したり、今は「ぴあのピア」を録音しています。「クラシック倶楽部」や「ハイビジョン クラシック」など素晴らしい音楽家の演奏も楽しめるのですから幸せです。ちょっと前に放送された「アンジェラ・アキ」のライブには感動しましたね。今やっていることは一昔前のFMラジオのエアチェック(懐かしい言葉)と同じことですが、当時に比べたら本当に素晴らしいですね。音質はCD並みですし、録画もDVDプレーヤーの電子番組表(EPG)や番組追従機能で録画し損じが無いですしね。携帯プレーヤーも何十回と再生しても音質劣化しないし(今の若い人はカセットテープって知っているのかな)。アニメ専門楽曲を放送する番組があればなお良いのですが今のところ見当たらないのが残念です。デジタルラジオも本格的に放送開始されればソースが増えてよいのですが、本格放送を期待しています。

2007年5月 3日 (木)

◆自動ログインツール(ネット自動操作ツールにバージョンアップ)

もっと早く公開するつもりが連休谷間の投信売買で後回しになってしましました。その結果は今週末にでも公開しようと思いますが、予告していた通り、ネットの操作を自動化するツールにバージョンアップさせました。詳細はサンプルをご覧いただきたいのですが、以下のようなことが可能です。これ以外にも私の想像を超える使い方を皆さんが編み出していただけたら嬉しいです。sample.xlsには一括ダウンロードと基準価額取得のサンプルを追加しています。気に入って頂けたら購入をお願いいたします。

sample.EXE をダウンロード

指定したサイトに対して、以下のような定型的な動作をさせることが可能です。
◆入力フィールドとボタンがあるサイトに対して、自動ログインや検索が可能
 例:ネット証券や銀行のオンライン取引サイトに自動ログインする。検索サイトに検索する。

◆指定したサイトに公開されている画像/動画/音楽/圧縮ファイルなどを一括ダウンロードすることが可能
 例:フリーソフトやポッドキャスティングのネットラジオファイルなどを定期的にダウンロードする。
 注:ストリーミング形式のものはダウンロードできません。

◆指定したサイトの内容をExcelに一覧化することが可能
 例:定期的にあるサイトの統計情報を取得する。

◆指定したサイトの指定したフィールドの文言をピンポイントで取得することが可能
 例:保有株価や投資信託の基準価額を毎日取得する。CD/DVDの発売予定日を取得する。

引き続きアンケートを募集中ですのでよかったらコメントください。
■こんなことが出来たらいいなアンケート --------------
♪良く利用するネットサービス
(例:オンラインバンキング、価格比較、ネットオークション...)

♪どうゆうことがしたいか、できたらいいか(具体的に)
(例:検索結果をExcel一覧化したい...)

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

« 2007年4月 | トップページ | 2007年6月 »