2010年11月27日土曜日

VirtualBoxでvdiファイルのコピーを作る方法

VirtualBoxでvdiファイルをそのままコピーしでも、新規バーチャルマシンを作ろうとすると、「ハードディスクの登録に失敗した」と言うエラーメッセージが出ます、エラーの原因はVirtualBoxがそのvdiに発行した「UUIDが既に登録済み」。

コマンドラインで、下記のコマンドを使えば、vdiをクロンして、新しいUUIDを発行することができる

c:\Program Files\innotek VirtualBox>vboxmanage clonevdi filename1.vdi filename2.vdi
(※VirtualBoxのインストールパス部分は状況を応じて変更してください)

しかし、コマンドライン苦手の私は、こんなツールを見つけた


便利でしょう。

2010年11月24日水曜日

HTMLのインテント

HTMLのインテント効果あるタグ

タイトル

内容内容内容内容

知らなかった。

2010年11月21日日曜日

EXCELをHTMLへ変換


YouTubeでデモと使用方法を見てみる

EXCELをHTMLに変換してくれるツールを探しましたが、ありそうけどないので、自分で作りました。
無料ですので、ご自由に使っていただければと思います(ただし商用、販売目的は禁止です)

対応EXCELバージョン:

  • Microsoft Office 2000
  • Microsoft Office 2003
  • Microsoft Office 2007


使用方法は簡単です。映像を見てください。

  1. もしEXCELのマクロセキュリティが “高” になっているなら、 “中” に下げましょう。
  2. そしてはここからダウンロード
  3. ダウンロードした「xls2html.xla」をダブルクリックし、「マクロを有効にする」をクリックします。そしてメニューバーに「HTMLへ変換」というボタンが表示されると思います。(※2007の場合はアドインの中)。インストール完了。本体を削除してください。(※本体は再度開くとエラーメッセージが表示される)。
  4. 変換したいEXCELファイルを開き、変換したい部分を選んで、「HTMLへ変換」ボタンを押す。


変換オプション:

  • HTMLタグをエスケープ:
    HTMLタグをそのまま表示したい場合、これにチェックを入れる。
  • 一行目をタイトルとして出力:
    意味そのまま。
  • セル内リンクを反映:
    チェックを外すと、ハイパーリンクが貼られた場合でも無視される。
  • 行おきの色違い:
    意味そのまま。
  • 値を使用:
    特に日付や金額の「¥」をそのまま表示したい時はチェックを外す。
  • 非表示の行列を無視する:
    非表示の行列はアウトプットしない。

アンインストール:
  1. スタート⇒ファイル名を指定して実行⇒%appdata%\Microsoft\excel\XLSTART⇒Enter。
  2. そのフォルダーの中のxls2html.xlaを削除するだけ。

2010年11月16日火曜日

コンパイルエラー:プロジェクトまたはライブラリが見つかりません。

「コンパイルエラー:プロジェクトまたはライブラリが見つかりません。」

EXCEL2003でこんなエラーが出ました(2007ではエラーがでません)、デバグしてみると、すごくシンプルな関数、変数、定数に被掛かったらしい。

Alt+F11で、「ツール」→「参照設定」で「参照不可」となっている項目の有無もチェックしたほうがいいです。一応私の場合、チェックを外せば、マクロは動くです。でも閉じて再開するとまた同じことが起きるから、根本的に解決しましょう。

例えば:

path = CStr(Environ("USERPROFILE")
name = Ucase(txtName.text)

'関数の前にちゃんとVBA.を書けばなおる
path = CStr(VBA.Environ("USERPROFILE")
name = VBA.Ucase(txtName.text)


'定数の場合
showResult.Show Modal
'Modalの前にvbを書けばなおる
showResult.Show vbModal

'あとは変数はちゃんと最初にDimすることです
Dim cl As Range
For Each cl In Selection
    '..........
Next

2010年11月15日月曜日

AVG アンチウイルス FREE EDITION 2011

最近AVGのバージョンアップがありました。しかしオフィシャルサイトでは有料版と試用版しかなさそうです。無料版を見つからないユーザを一気に有料版に押し付けるつもりでもありますか?

クリックで大きくなる


OSはXPですが、Cドライブではなく別のドライブにあるので、AVGインストール時「C:\がない」というエラーメッセージが出てくる。仕方がない、外付けハードディスクで繋いてあげて、一応Cドライブを有効にしてあげたら、ちゃんとインストールが出来ました。(AVGのインストール場所は選べます)。Cドライブがないとインストール出来ない。これはバグですかね

2010年11月14日日曜日

xla アドインののシートを表示するには

ファイルを一旦XLA(アドイン)に保存すると、再度開くときはアドインとして開いてしまって、シートは表示しません。

シートを表示するにはイミディエイトウィンドウで:

ThisWorkbook.IsAddin = False

2010年11月11日木曜日

javascriptでobjectのpropertyの参照

//直接参照
var name1 = jsonData.name);
//変数で参照
var prop = "name";
var name2 = alert(jsonData[prop]);

これ、常識かもしれないが、私は覚えられないので、書いとく

2010年11月7日日曜日

EXCEL2003/2007アドインの自動登録の方法

最新のやり方
まずとこがでアンインストールのグローバル変数を定義
Public gUninstall As Boolean
xlaののWorkbook_Openに
xla開くときに自動インストール
Private Sub Workbook_Open()
    Workbooks.Add
    AddIns.Add fileName:=ThisWorkbook.FullName
    AddIns(getShortName(ThisWorkbook.name)).Installed = True
End sub
ボタンを定義削除
Sub delMenu()
    On Error Resume Next
    Application.CommandBars(1).Controls("&テスト").Delete
    Application.CommandBars(1).Controls("&アンインストール").Delete
End Sub
ボタンを定義追加
Sub addMenu()
    Dim objButton As CommandBarControl
    On Error Resume Next
    Application.ScreenUpdating = False
    With Application.CommandBars(1)
            If .Controls("&テスト") Is Nothing Then
                '\\Create Button with image
                Set objButton = .Controls.Add(msoControlButton, before:=11)
                With objButton
                    .Style = msoButtonIconAndCaption
                    .Caption = "&テスト"
                    .FaceId = 8
                    .OnAction = "テストSub"
                End With
            End If
            If .Controls("&アンインストール") Is Nothing Then
                Set objButton = .Controls.Add(msoControlButton, before:=11)
                With objButton
                    .Style = msoButtonIconAndCaption
                    .Caption = "&アンインストール"
                    .FaceId = 3838
                    .OnAction = "uninstall"
                End With
            End If
    End With
    Application.ScreenUpdating = True
End Sub
アドインをアンインストール
Sub uninstall()
    Call delMenu
    gUninstall = True
    AddIns(getShortName(ThisWorkbook.name)).Installed = False
End Sub
最後、完全に自分を殺す
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If gUninstall Then Call delMenu
End Sub
以上。

以下は古いやり方
**************************************************************************
EXCEL2000-2003のアドインは *.xla
EXCEL2007のアドインは *.xlam(マクロ有効)

しかし配布するとき、ユーザに一連の操作をし、アドインとして登録してあげないと使えない。
具体の手順は(EXCEL2007の場合):

  1. アドインファイル(*.xla または *.xlam)を所定の場所にコピー、一般的には C:\Program Files\Microsoft Office\Templates\addin (デフォルト)です
  2. 手順①のコピー先を「信頼できる場所」に設定すること。EXCELの一番左上のボタンを押して > 「EXCELのオプション」  「セキュリティーセンター」  「セキュリティーセンターの設定」  「新しい場所の追加」  「参照」  「確認」 (※ステップ1のコピー先がデフォルトのフォルダーなら、ステップ2は省略できる)
  3. EXCELの一番左上のボタンを押して > 「EXCELのオプション」 > 「アドイン」 > 「管理→EXCELアドイン」 > 「設定」 > 「アドイン→ティックを入れて」 > 「OK」
以上のめんどくさい設定をユーザにやってもらわないと行けない。そしてそのことは開発者の「作品をより多くの人に使ってもらう」という目的の大きいな壁です。

もっと簡単な方法はないか?
EXCEL2007の場合):
C:\Documents and Settings\UserName\Application Data\Microsoft\excel\XLSTART
※ショートキー:Win+rで開く「ファイル名を指定して実行」に %AppData%\Microsoft\excel\XLSTART で一発行ける
もう一個は%AppData%\Microsoft\AddIns


というフォルダーは一種特別のフォルダー、EXCEL起動時、このフォルダーに入っているスクリプトファイル(ここでは*xlaまたは*.xlamを指しています)をすべて読み込みます。なので、最初にアドインファイルを実行するとき、自分自身をこのフォルダーにコピーすれば、上記面倒な設定は要らなくなる。
ソースコードの一部


Private Sub Workbook_Open()
    Dim xlstart As String
    'ファイルシステムオブジェクトの宣言
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'XLSTARTフォルダー取得
    xlstart = CStr(Environ("USERPROFILE") & "\Application Data") & "\Microsoft\Excel\XLSTART"
    'もしフォルダー存在すれば
    If UCase(Dir(xlstart, vbDirectory)) = "XLSTART" Then
        'もしファイル存在しなければ
        If Dir(xlstart & "\" & ThisWorkbook.Name) = "" Then
            '自分自身をコピーします
            FSO.CopyFile ThisWorkbook.FullName, xlstart & "\" & ThisWorkbook.Name
        End If
    End If
    Set FSO = Nothing
End Sub


こうすれば、今後ユーザがEXCELを開けば、アドインは有効になります。
EXCEL2000-2003とEXCEL2007両方対応する為にxlaとxlamを別々作ったほうがいいと思います。

\username\Application Dataフォルダーにすぐにアクセスする方法

window XPのアプリケーションデータフォルダーはデフォルトhiddenですので、アクセスするのはちょっとめんどくさい。

C:\Documents and Settings\UserName\Application Data

「スタート」>「ファイル名を指定して実行」 で 「%appdata%」 を入力してEnterを押すと簡単にフォルダーが開けちゃうので、一応メモしとく

例えばQuakeliveのDemoフォルダーは:
%appdata%\id Software\quakelive\home\baseq3\demos

2010年11月6日土曜日

windowXP自動登録(自動ログオン)

RemoteDeskをアクセスために、windowsXPのログインユーザにパスワードを作りました。
しかし、これで毎回起動するとき、パスワードが求められて面倒になります。これを解消する
方法があります。
  1. スタートメニューにある「ファイル名を指定して実行」に「control userpasswords2」と入力する
  2. 「ユーザーアカウント」画面が起動するので,「ユーザーがこのコンピュータを使うには,ユーザー名とパスワードの入力が必要」のチェックを外す
  3. 自動でログインしたいユーザー名とパスワードを入力しよう。OKを押せば設定完了だ。なお,デフォルトでは「Administrator」がユーザーとして選択されている。必ず自分の利用しているアカウントに変更して設定しよう

CD DVD入れた時の自動再生

最近nero10を入れたけど、使いにくいからアンインストールしましたが、毎回CDまたDVD入れるときにポップアップされる「自動再生」のwindowでは、neroの項目が残っている。
それを削除する為にいろいろ調べました。
※下記手順はレジストリを変更しますので、すべて自己責任て行ってください。


  1. “winキー” + “r” 同時に押せば 「ファイル名を指定して実行」 が出てくる。
  2. “regedit” を入力して enterを押す
  3. HKEY_LOCAL_MACHINE
     SOFTWARE
      Microsoft
       Windows
        CurrentVersion
         Explorer
          AutoplayHandlers
           EventHandlers
            の下にあるイベントの項目の中に“nero”を含まれるキーをすべて削除する


終わり。

DELLの商品なら、サービスタグから保守情報を調べる

このページから
http://support2.jp.dell.com/jp/jp/tech/phone/

サービスタグ、こんな感じの英数字(すべて大文字)
90K32L4

またはエクスプレスサービスコード
19624886661


入力すれば保守情報を調べる、ちょっと便利

2010年11月5日金曜日

電気代の見直し

電気代を見直したらどうですか?
うちの22年10月分は7,857円だった

従量電灯B:
深夜料金適応時間帯:なし
昼一段階:1kw-120kw(¥17.87)
昼二段階:121kw-300kw(¥22.86)
昼三段階:>301kw:(¥24.13)


ナイト8:
深夜料金適応時間帯:23:00-07:00(¥9.17)
昼一段階:1kw-90kw(¥21.87)
昼二段階:91kw-230kw(¥28.07)
昼三段階:>230kw:(¥29.64)

ナイト10:
深夜料金適応時間帯:22:00-08:00(¥9.48)
昼一段階:1kw-80kw(¥23.87)
昼二段階:81kw-200kw(¥30.74)
昼三段階:>200kw:(¥32.48)

東京電力が供給している地域に適応できる。東京、千葉など
0120-995-662 フリーダイヤル

契約のアンペア数を下がれば月月の基本料金は下がります。10Aさがればで約240円下がるって。ちなみにうちは50Aの契約

詳細のプラン料金表を貰える。また、ナイトに切り替えたら料金は下がるか、逆に上がるか不安なら、試算表もあるらしい、一週間消費電力を記録して,郵送すれば各プランで計算してくれるって。
でもいちいち郵送するのは面倒だね、マクロかなんかでダンロードできればいいのに。と思った。

2010年11月2日火曜日

2010年11月1日月曜日

IE6,IE7エラー「識別子、文字列または数がありません」

IE6,IE7で「識別子、文字列または数がありません」が出ています。IE8、Firefox、chrome、Operaはでません。

IE6,IE7では簡単にデバグ出来ないので、問題点の特定に時間を掛てしまった。

問題点はこれです:

var columnsClassStatus = {
    NAME : {title:"キャンペーン",width:"wd_l",},
    GROUP : {title:"グループ",width:"wd_l",},
    CPA : {title:"CPA",width:"wd_m",},
};

オブジェクトまたは配列の最後のエレメントの後ろ「,」があってはなりません。

var columnsClassStatus = {
    NAME : {title:"キャンペーン",width:"wd_l"},
    GROUP : {title:"グループ",width:"wd_l"},
    CPA : {title:"CPA",width:"wd_m"}
};

にするIE6とIE7ではエラーは解消されます。