ソフトウェア: 2007年6月アーカイブ

Acronis Disk Director というソフトがある。

ハードディスクのクローニングだとかパーテーションまわりの操作をするシステム管理用ツールなのだが、昔からこういったツールはよく使うほうだった。

古くはPC-9801あたりで、ノート用のハードディスクを大きいものに入れ替えるとか、圧縮して容量を増やすとか、DiskXだったっけ?とかノートンとか、そんなのをよく使っていた。

昔は単純にコピーするだけでDOS環境やWindowsが起動してくれたので全然楽だったのだが、WindowsNTあたりからけっこう面倒な作業になってきていた。それでどうしても専門のツールが必要になってくる。

前職ではSEみたいなこともやっていたので、いろいろなメーカーのものを比べたり、トライアル版で操作してはまったり(笑)とかなりの経験を積んだ。

XPでこのへんの仕組みが変わり、ツールも新しいバージョンが必要となった。たまたま違うメーカーのものを買って不便な思いをしたので、Vistaに切り替わったのを機会に使い慣れたソフトの最新版を自腹で買った。 

 

Acronis True Image と 同 Disk Director のそれぞれバージョン10だ。True Image 10 Homeは確かにVista対応を謳っていたが、ここに落とし穴があった。Disk Director Suiteはアップデートパッチを当てる必要があったのだった。

なにげにOSセレクターを使おうと思ったのが発端だが、説明も読まずにいきなりインストールしたのが失敗だった。

昔はこういう失敗を乗り越えるのも修行のうち、と地雷原に飛び込んでいくようなことは日常茶飯事だったのだ。仕事を変わったいま、そんな危ないことをする必要もなかったのに...

 

「起動できないからディスクを取り出せ」って、ハードディスクは取り出せない。んー、ちょっと困ったことになったかな、程度に思いながらVistaのDVDを入れて再起動。あれ、回復コンソールが...

Vistaでは単なるコマンドプロンプトになっていた。しかもコマンドが変わっているらしく、XP時代に使っていたリファレンスブックは全く役に立たなかった。

 

しかし一休さんのごとく、慌てない、慌てない、とサブ用のノートでググって見る。まずはプロトンのHPで何が抜けていたのか確認。続いてサポートサイトでこんなときにどうすりゃいいのか確認...

Vistaではブートレコードを修復するのも、ブートローダー設定のboot.iniを変更するのもすべてコマンドで行う。以下は修復の記録。(備忘録)

 

1) まずVistaのDVDで起動、コマンドプロンプトを呼び出す。

2) cドライブの\windows\system32へ移動、bootrec.exeコマンドでMBRを修復。
     >  bootrec /fixmbr
     >  bootrec /fixboot

3) 他に必要ならパーテーションをアクティブにする。diskpart.exeコマンドを使用。

 

他にもVistaのDVDにあるbootディレクトリのbootsect.exeコマンドでブートレコードを修復する方法もある。これだけではだめだったけど。

    >  bootsect /nt60 c:

bcdedit.exeはこの場合関係ないみたいだった。その他、修復メニューは修復できないどころか事態を悪化させる場合があるらしい、などなど。 

 

まあそういうことで何とか再起動できるようになった。

そしてDisk Director Suiteアップデート版をインストールしようとしたが、アンインストールしないとだめだった。しょうがないのでアンインストール。あれ?OSセレクターも自動的にアンインストール?ってもしや元に戻すってことか...?

予感は的中。アンインストールによって、そのバージョンで対応していないVistaのブートセクタを元に戻してくれた...つぶれた状態にだけれど。

 

そして2度目の復旧作業を終え、「さっきはどうやったんだっけ?」という手順が追加されたことを教訓に自分で記録を残すのであった。どうやら復旧策はいくつかあるらしいのだが、どれが有効かはケースバイケースらしいので...

 

 

 

あかん、動かへん (ーー;)

 

Beta3リリースを機会に試してみたのだが、このロリポップのサーバーではだめみたい。SQLite1.11以上が必要となっているが、どうもそれ以前のものらしい。MySQLも登録してあったのにうまく動作しないみたいで、こちらは設定ミスの可能性も。詳細は現在調査中。

いったんインストールしたけどバックアップから3.35に戻して今回はおしまい。

 

mt335_s.jpg

※3.35のシステム管理画面-シンプルだがいまいち使い勝手がどうもねえ

 

mt40b3_s.jpg

※4.0Beta3のシステム管理画面「ダッシュボード」-なんかすごそうな予感&慣れるまで大変そう

 

いろいろ使い勝手が向上して、WordPressに奪われたシェアを取り戻せるのでは、なんて言われているが...もうちょっと様子見ようかな。問題はロリポの対応だが。

 

別のブログでここに書くと宣言していたのだが、ちょっとしたためらいもありYouTube関連ツールについてはまだ書いていなかった。最近ちょっと状況が変わっているようなので日本語版スタート記念としてここに紹介する。

 

YouTubeの何が面倒だといって、オンライン視聴前提で作られているものをあえて手元に取り込むための手順が複雑だということ。ファイルのありかを長いURLから取り出さないといけないし、そもそもファイルをローカルにコピーしてもファイル形式がFlashビデオ(拡張子.flv)なのでWindows標準のメディアプレーヤーでは見れない。

ちょっと前まではさまざまな「ダウンローダー」と呼ばれるツールがリンクを解析してFLVファイルをダウンロードする手伝いをしてくれた。それをFLVプレーヤーで見るか、コンバータで他のビデオ形式に変換するというのが一番わかりやすい方法だった。ちょっと手間がかかるけど。

あるいはビデオダウンロードサイトというサービスがあり、URLを貼り付けるとmpegファイルなどに形式変換までやってくれる。 こちらは待ち時間が長いことがあるので、いくつかダウンロードしたいファイルがあるときなどは結構な手間となる。

 

今回あらためて探ってみると、「Craving Explorer」というソフトを見つけた。まだアルファ版ということで完成度はいまひとつといった感じだが、使い勝手は良さそうである。

 

craving_explorer.jpg
※プレビュー画面の上に変換する形式ごとにリンクが追加される 

 

画面のようにブラウザが組み込まれているのが特徴だ。一番上のツールバーと真ん中のブラウザ画面はIEのエンジンを使っている様子。使い方は至って簡単で、URLが分かっている場合は直接入れるか、IEのお気に入りに登録しておくとそのままリンクメニューとして出てくる。あるいは動画サイトでキーワード検索をかける要領でリストとして表示させてその中から見たいものを選ぶ。

見たいものをブラウザ画面で表示する。と、プレビュー画像の周りに各画像形式ごとのリンクが追加される。それをクリックすると一番下のスケジュール画面にダウンロード状況が表示される。

検索して表示、リンクをクリックして保存。これだけ。対応している形式はavi、mpg、flv。音声だけをwavやmp3で保存することも可能。

 

 

くれぐれも注意して欲しいのは、こういった投稿動画の類いは著作権を侵害しているケースが多いということ。自分で演奏している様子とかを投稿するのは自由なのだが、テレビ放送を録画したものとか市販のDVDとかからコピーしたものはアウト。最近ではどんどん削除されているそうなのでそれは結構なことだ。

個人で撮ったようなものでも、今度は撮った人に著作権があり、それを第三者が勝手にどうこうすることはできないという点。視聴は自由だが、それを加工するとか二次利用してはいけない(と思うんだが...)


こういったツールは個人として使うための利便性を提供するものであって、著作権侵害を幇助するものではない。結局は使う人次第なわけだけど、うまく使ってほしいものだ、ということでおしまい。

 

 

 

 

だんだん面白くなってきたので、さっそくバージョンアップしてみた。v1.1になった。

普通は0以下のマイナーバージョンで0.9とかでテストし、仕様が固まったら正式リリースとかやるみたいだけど...遊びと学習を兼ねてやっていることなのでフリーソフト作家になろうというわけではないし。そのうちバージョン1.999とかなるかも(笑)

 

easymenu_v11.jpg

 

きりのいいところで1画面に10個ずつのボタンを配置。タブでメニュー画面を増やし、右クリックでコンテクストメニューを出して設定画面を呼び出すようにした。今のところタブ2,3の中身は空白。各ボタンに同じことを書きゃいいので後回しにする。

 

問題は設定画面をどうやって呼び出すか。サブウィンドウが開くタイプだと、サブウィンドウがほかのアプリの下になったりして面倒か。かといってコンパクトな画面内に設定項目欄を並べるのは無理。 そこで「設定を開く」メニューでウィンドウサイズを変えるようにしてみた。

普段は最小サイズに固定なのだが、メニューをクリックすることで最大サイズにし、広がった領域にタイトル欄とファイルパス欄、開くボタンが並ぶようにしてみた。 まあ作る人によってはサブウィンドウの方がいいとか、いろいろ流儀があるんだろうけど。なんせ初めて作るのでなりふり構わずってことで。

 

「設定を閉じる」メニューかボタンをクリックすると、元のサイズに戻る。せっかくだから設定画面には世界時計を表示名、時差で変更できるようにした。たまにボスがインドとかアメリカとか違うところへ出かける場合もあるので...

次はリストボックスから都市名を選ぶと自動的に時差が設定されるように、とかサマータイムは自動的に適用されるように、とかアイディアは尽きない。プログラミングはこの過程が面白いんだ。デバッグは頭を抱えることが多いけど。

 

 

今日のお題は「VisualBasic2005」ってことで。

Microsoftが現在販売している開発言語のうち、いくつかの古い?バージョンが無償で提供されている。正確には「VisualStudio 2005 Express Edition」になるのだが、たかだか1年ちょっと前の製品なので、十分に使えると思われる。

 

 

むかーし(まただ)、N88-BASICとかFM-BASICとか、MSX-BASICなんてのもやったっけ。これらはコマンドラインから使うものだったので、テキストの入出力と計算処理がメインで、グラフィック機能はおまけ程度だった。

ところがVisualBasicでは「フォーム」、そしてオブジェクトだのクラスだのと新しい概念が次々と取り入れられ、その高額なことも相まってなかなか手が出なくなってしまった。

実はPC-9801の末期あたり、仕事でTURBO-Cも使っていたのだが、Windows3.1に乗り換えたあたりで出番がなくなっていた。その後Borland C++ Builderを自腹で買ったが、趣味で使うわけでもなく結局使わなかった。

仕事ではUNIXワークステーション、それもCADがらみのものでHP-UXとかSGIのとか、Linuxとはまた違った世界でperlやsedスクリプトを使うようになっていった。

 

 

ところが最近になって、また何かやりたくなり、そこでこのVisualBasic2005に目をつけたという次第。今回は本に頼らず、主にネットの書き込みとオンラインヘルプを参考にした。

調べ物に数時間かかったが、初めて使ったにしては何とか思ったようなものができた。単なるプログラムランチャーなのだが、XLSファイルやPDFファイルなど仕事中にパッと呼び出すだけの話。

ショートカットはデスクトップじゅうに散らばるので嫌いだし、いちいち開いたアプリケーションを閉じずに呼び出せるメニューが欲しかった。

Vectorなんかで探せば山ほどあるだろうが、そこは自分の思ったデザインにしたかったので...メインウィンドウを小さくデザインしたので、設定メニュー画面の項目が増やせなくなった。やはり別ウィンドウにしたほうが良かったか? しょうがないのでボタン画面の余ったスペースに世界時計をつけてみた。

ドイツの時間をにらんで仕事しているので、時間はドイツ固定。いずれは設定変更できるようにしようと思う。メニュー数もとりあえず7つだけだが、サブメニューとか階層化してもいいと思う。

 

 

easymenu_s.jpg

 

 ※タブコントロールでやる必要もないのだけど、メニューバーなしにしてみただけ

 

 

Excel VBAなんかと似てはいるけど結構流儀が違ったりしてそれなりに大変だった。

まあ、またひとつ、老後の時間つぶしが増えたってことで(笑)

 

昨日はFlashに悩んでいた。といってもこのトシでFlash職人になろうというわけではない。

仕事で会社のホームページを全面的に作り直しているのだが、この際だからFlashでバナーでも入れてみようとだいぶ前に買ったFalshMaker3をひっぱり出してみたのだ。 

 

flashmaker.jpg
※サンプルについていたゲームを編集中の画面。サンプルがダサいとの評あり。 

 

いまひとつ必要性がなかったので、買っては見たものの使い方が分からないまま放置してあったもの。覚えてしまえば何てことないのだろうけど、結局「このようにしたい」という目標がないままやろうとしても、こういったソフトは挫折しやすいということ。

今回は何とかしてココを埋めたいという動機があったので、 それに見合ったデザインを考えてラフケッチを脳内で描いてみた。手で描くのは面倒だったので...(ズボラも挫折する要因なのだが)

必要なグラフィックを集め、いざ新規作成...やっぱりわからない。orz

仕方ないので本屋へ走るか図書館へ行くか3秒迷った後、とりあえずググってみた。

 

結構ファンサイトはあるのだが、具体的な作り方に触れたものは少ない。それでも見よう見まねでいじっているうちにコツがつかめてきたので気を取り直して新規作成。

1時間ほどで思っていたほどのものが出来上がった。なんだ、覚えてしまえば簡単やんか。(^^)v

 

もちろんお約束の七転八倒もあった。(-_-;)

第1にフォントの問題。

現在私のPCには標準のフォントのほかにMicrosoft OfficeやAdobe CS2、筆まめとかについてくるものがたくさん入っている。一部のフォントでは文字の配列が崩れてしまい、まともな表示にならない。試行錯誤の結果、Vista名物「メイリオ」フォントが見栄えもよく問題なく表示されるのでこれに決定。

 

第2にブラウザがswfファイルを表示できない問題。

実はIE7はswfファイルがURLリンクにあると、直接実行してくれない。いちいちクリックしないと表示すらしないという問題があった。セキュリティ上の改善点なんだそうだが、意図した通りに動かないページは使えない。これは外部javascriptファイルを用意し、そこに書いておくことで回避できるらしい。

私がメインで使っているブラウザはFireFox2だ。IEでないと動かないページもあるので予備にIE7を使っている。Operaは広告がうざいので使わなくなった。GreenBrowserもある時期使っていたが不安定だったのでFireFoxが出たあたりから使わなくなっていた。

仕事で見せるページは動作確認しなくちゃいけないので、Vista上のIE7とは別にWinXP上のIE6、MacOSX上のSafariでもテストする予定。IE7とFireFox2でもけっこう違ったりするので、どれでも完璧に見えるページって相当気を使わんとダメ。

 

 

さて、今回は備忘録を兼ねて外部javascriptでswfファイルを呼び出す方法について書き留めておく。

まず、htmlファイルのほうにはswfファイルを呼び出すEMBEDタグがあるはずだが、これの代わりにjsファイルを呼び出すように書いておく。jsファイルはlibディレクトリにある"swf_activate.js"とする。

<script type="text/JavaScript" src="./lib/swf_activate.js"> </script>

次にこのjsファイルを用意する。swfファイルのあるのはswfディレクトリにある"banner.swf"とする。

---( swf_activate.js )------------------------------
document.open();
document.writeln('<EMBED src="./swf/banner.swf" quality="high" bgcolor="#FFFFFF"; WIDTH="www" HEIGHT="hhh" NAME="banner" TYPE="application/x-shockwave-flash" />');
document.close();
---------------------------------------------------------

ここではまったのはjsファイルの中身は3行だということ。document.open,  document.writeln,  document.close で3行。あるところからコピペしたままやってみたら、改行してあったので動かなかった。 文中のsrcにはswfファイルを、WIDTHのwww、HEIGHTのhhhにはFlashの画面サイズを入れること。

 

だいたいいつもそうなのだが、こういうソフトって直感的に使えるかどうかがポイントだと思う。そういう意味では昔のアドビのソフトなんてMacの流儀をそのままWindowsに持ってきたみたいで使いづらかった。

ググっている過程で、本家Adobe FLASHやこのソフトの他にフリーソフトでswfファイルが作れるなんてのが思ったよりたくさん見つかった。時間があればいろいろ試してみたいと思う。

こんな風に作れればカッコいいんだけど、無理無理。

 

そんなに詳しくはないのだが、うまくいったので備忘録として残す。

 

シート1にはA列に商品名をピックアップしたリストがある。シート2にはすべての商品と在庫数の一覧がある。一覧表の範囲には"List1"という名前がつけてある。

このような条件で、いちいち数式を入力せずに、シート1の商品ごとにシート2の在庫数が表示されるようにしたい。

excelvba2.jpg

セルに数式を入れるだけなら、

= VLOOKUP(A2, シート2!List1, 2, FALSE)

でとりあえず結果は出る。

特注品とかList1に商品名がないとエラーになるので、もうちょっと足して

= IF ( ISNA ( VLOOKUP(A2, シート2!List1, 2, FALSE )), "", VLOOKUP(A2, シート2!List1, 2, FALSE))

とやればよい。範囲に名前をつけていなければ、"A15:C1200" とかいちいち入るのでけっこう式が長くなるので大変。かっこ抜かしそうだし。

 

 

ところがこのシート1は別のソフトから出力したテキストデータをインポートしてできるシートなもんだから、あらかじめ式を入れておくことができない。マクロで数式を入れる方法もあるのだが、やたら数式ばっかりというのもどうかと。

そこで今回はシート1の商品名に対して、ひとつずつシート2を検索して在庫数をシート1のセルに入れるということをVBAでやってみた。

 

結論から言えばポイントは2つ。ひとつはExcelのワークシート関数をVBAで使うにはどうするか。もうひとつはエラーがあった場合の処理をどうするか。

ワークシート関数をVBAで使う場合は、Application.WorksheetFunction.Vlookup()のように書けばよい。引数の使い方はほぼ同じだが、検索範囲の指定は注意が要る。こっちはすぐに分かった。

ところがエラーが発生した場合の処理、たとえばシート2に検索値が見つからなかった場合。これはうちの会社の場合、あるメーカー向けに特別な型番をつけた商品があり、それを探そうとするとエラーになる。

セルに数式を入れた場合、結果セルには"#N/A"と表示される。「結果なし」ってこと。0ではないところがうらめしい。そこでセルの場合はISNA関数を使って、#N/Aが返ってきたときの処理を入れるわけだ。

今回VBAではどうにもできなかった。というのはセルに式を入れる要領でいろいろやった結果、どうしてもエラーになった箇所で止まってしまうのだ。ISNAに渡らないのだ。

 

いろいろ探し回ってみたが、それらしいことを書いているサイトの通りにやって見てもダメ。ひどいのははっきり書かないで「そのぐらい自分で調べろ」みたいな言い方。ホントに知ってんのか?と思う。

あっちこっちの書き込みを参考に試してみた結果、どうやら「エラーで止まらないようにした上で、エラー番号で判断する」という方法が有効らしい。

 

以下の例では、シート1のA2から何行か商品名のコードが入っている。シート2の名前つき範囲"List1"の2列目に在庫数データがあるとする。マクロはシート1で実行すること。

 

 Sub 在庫数検索()

    Dim SerchName As String
    Dim SerchArea As Range
    Dim Results As Variant
    
    '初期設定
    Range("A2").Activate
    ItemCode = Range("A2").Value
    i = 0
    
    '検索範囲の設定(ポイント1)
    Set SerchArea =Worksheets("シート2").Range("List1")

    '商品コードが空になったら終わり
    Do Until ItemCode = ""
    
        'エラーになっても続行する(ポイント2-1)
       On Error Resume Next
        
        '商品コードに該当するデータを探し、Resultsに入れる
        ItemCode = ActiveCell.Offset(i, 0).Value
        Results =Application.WorksheetFunction.VLookup(ItemCode, SerchArea, 2, False)
        
        '該当するデータがないとエラーになるための処理、エラーなら空欄にする(ポイント2-2)
       If Err <> 0 Then Results = ""
        
        ActiveCell.Offset(i, 1) = Results

        i = i + 1
        
    Loop

End Sub

 

 

シート2も実は別のソフトから吐き出したタブ区切りデータをワークシートに取り込み、ソートしたりデータの種類ごとに分類して複数の範囲名をつけるようになっている。範囲名で指定すれば、行数が変わっても式は同じでいける。 

ポイントは検索範囲の指定方法(ポイント1)と、エラーが起きた場合の対処(ポイント2-1、2-2)だ。

 

正当な方法かどうかは自信がない。とりあえず走るのでOKというレベルだが、またひとつ経験値が上がったと言えるかも。別法があればご教示いただきたい。

 

 

 

このアーカイブについて

このページには、2007年6月以降に書かれたブログ記事のうちソフトウェアカテゴリに属しているものが含まれています。

前のアーカイブはソフトウェア: 2007年5月です。

次のアーカイブはソフトウェア: 2007年8月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

2008年12月

  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 31      
Powered by Movable Type 4.1