グラフの凡例の順番を入れ替えるには?

サーバのアクセス件数を収集中に、新しいWEBアプリがリリースされたので、月例会資料に追加したが、
何も考えずに、追加したところ、、合計の後に追加されてしまった(汗)
凡例を選んでもダメだし、データ削除、新規作成も阿保なので、google先生に聞いてみたところ、

EXCEL2003では、グラフの線を右クリック > データ系列の書式設定 > 系列の順序

で変更できる。ただし、EXCEL2007だと若干異なり、グラフの線を右クリックした後、データ選択を選んで、データソースの選択画面の右側のペインで変更ができる。
2007の方が、直観的にわかりやすいね。

バッチでIPとプロキシの設定を切り替える

業務上、まったく関連のない複数のLANに対して、ノートパソコンを持って
行ったり来たりする中で、毎回手動で切り替えるのが面倒に感じたのでバッチを作成した。

Windows7 Pro で動作確認した。

@echo off
:: @ネットワーク切り替えバッチ@
:: 便宜上、IPアドレスやラベル名は編集してあります
:: このバッチで発生するいかなる問題に対して、私は責任を持ちません。
:: コピペは自己責任でお願いします。

set /P INPUT="接続先の番号を選択してください。NET_A:1 NET_B:2 NET_C:3"
if "%INPUPT%"=="1" goto NET_A
if "%INPUPT%"=="2" goto NET_B
if "%INPUPT%"=="3" goto NET_C
if "%INPUPT%"="" goto ERR_EMP
goto ERR_SOTEGAI

:: 固定IP、固定DNS、プロキシを変更
:NET_A
netsh interface ip set address "ローカル エリア接続" static 192.168.A.A 255.255.255.0 192.168.B.B
netsh interface ip set dns "ローカル エリア接続" static 192.168.C.C primary
netsh interface ip set dns "ローカル エリア接続" static 192.168.D.D

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 192.168.E.E:12000 /f
goto END

:: IPとDNSはDHCP、プロキシを変更、イントラはプロキシを介さないようにする
:NET_B
netsh interface ip set address "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 192.168.a.a:8000 /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "192.*;<local>" /f
goto END


:: IPとDNSはDHCP、プロキシを変更、特定のホストはプロキシを介さないようにする
:NET_C
netsh interface ip set address "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp
netsh interface ip set dns "ローカル エリア接続" dhcp

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d proxy.xxx.xxx.co.jp:9010 /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "*.XXX.co.jp;*.YYY.com;172.*;<local>" /f
goto END


:ERR_EMP
echo "入力番号がありません。番号を指定してください。処理を中断します。"
goto END

:ERR_SOTEGAI
echo "入力番号が想定外な値です。メニューに記載の番号を入力してください。処理を中断します。"
goto END

:END
echo "切り替え処理が終了しました。"

pause

ネットワークの切り替えで、肝となるのは以下の2点。

  1. PCのIPアドレスDNSの変更は、netsh interface ip コマンドで変更する。
  2. プロキシ関連は、レジストリを編集する。
  • netshコマンドを入力する際にネットワーク名*1がわからない場合は、ipconfigコマンドで、有効になっているアダプタを指定する。

例えば有線LANの場合は、”イーサネットアダプタ”の隣に出ている名称を入れればよい。

  • regコマンドは、ヘルプを見る限り、新規に追加するか、上書きしかないのと、プロキシを介さない設定については、ダブルクォートで囲まないとコマンドがエラーになる点が注意。
  • レジストリに渡す値がわからない時は、regeditでレジストリ値や型が参照できる。

また、見ての通り、性善説で書いているので、同じ条件を立て続けに実行すると、netshコマンドは既に設定済みと出力されて、エラーメッセージが出力される。
レジストリは毎回上書きなので、「コマンドは正常に終了しました」と出るが、、このあたりは、マイツール的な位置づけなので、追々対応することにしよう*2

*1:サンプルでいう”ローカルエリア接続”の部分

*2:LANの抜き差しのタイミングでは、ネットワークに接続できるが、タスクトレイの警告ダイアログが付きっぱなしになる事象もある。

なぜUbuntu12.04?

唯一のノートPCで、まだまだVHSのデジタル化作業が残っていて、完全にはつぶせないけど、
日経Linuxで頻繁にXPから乗り換えるなら、これ!みたいな特集を読んで感化されました。
これを機にUnix系のOSを触ってみて、もうちょっと業務にその知識が生かせたらと思う。
最初は日経Linuxの付録についていた、Linux Mintという軽量OSを入れてみようと思ったのだが、
インストーラーが途中で止まってしまって入れることができなかった。
これはCPUが古すぎてPAE?非対応が原因みたい。PAE非対応でも、コマンドラインでフォースを選ぶとできますよ
とも書いてあったが、同じ結果だった。
Ubuntu12.04はPAE非対応で、かつまだサポートも生きているOSなので、今回のトライで選択してみました。

WindowsXP機にUbuntu12.04をインストールしようとしたら「ルートファイルシステムがありません」と出て、先に進まない。

WindowsXP機にUbuntu12.04をデュアルインストールした際に、「ルートファイルシステムがありません」と出て、対処した内容のメモ。

導入したPCはNEC製のLavieLL370、WindowsXPSP3 Home Edition、メモリは256+512(増設)MB、CPUはモバイルAMD Sempron プロセッサ3100+
インストールDVDを作成し*1起動。
Ubuntuのインストールを選択し、次、次、と選んでいくと、
既存のWindowsXPをつぶすか、手動でパーティションを設定するか?の選択画面が出てきたので、
後者のパーティションを設定するを選択したが、何をすれば良いかわからず、そのままインストールを選択したが、エラーになってしまった。

「ルートファイルシステムがありません」と出た。ルートボリュームがないといっているのだろうか?
確かに選んでないからね。でもさっきの画面で、/dev/sdaを選んで、新しいパーティションを追加しようとすると、既存のパーティションはすべて削除されます。と出るし、
その下の/dev/sda1を選んで、追加すると、新しく追加されるのではなく、既存のパーティション情報(タイプのところや、マウントポイント)が変わってしまうので、
これも何か違う気して、、「ubuntu12.04 ルートファイルシステム」でgoogle先生に聞いてみると、どうやらドライブがもう一つ必要なようだ。*2
今のPCは、Dドライブをつぶして、Cドライブ1つだけで運用していたから、そのドライブ全部がWindowsXPとして割り当たってしまっていて、
Ubuntuを入れる余地がないということか。

Ubuntuには、パーティションを編集するツールがあって、それで編集して空けたところにUbuntuをいれたページもあったので試してみた。
一度インストールを中断して、ライブ起動から、左上のアプリケーション検索*3でgpartedを起動。

メニューバーからリサイズを選んで、パーティションを編集しようとしたけど、出来ない。動かせるのは2MB程度。
すでにOSとして割り当たっている領域の編集には手が出せません。orz
このツールはCドライブを分割するようなツールではなく、DドライブとかOSが入っていない領域の編集をするためのツールっぽい。

Cドライブを縮小して、Dドライブとかを作らないといけない。というかそんなことできたっけ?と半分疑問に思いながら、
まさかのWindowsXPを起動*4して、コンピュータの管理からディスクの管理を選択。

全部、Cドライブに割り当たっているので、これを右クリックとかで、分割して、Dドライブにとか、、は出来ない!

こうなると、リカバリディスクからドライブの割り当てをするしか思いつかないので、まさかまさかのリカバリディスクからの起動を開始。
ドライブの割り当ては、Cドライブを最小にして、残りを全部Dドライブとして作成。

かなりのロスタイムとなったが、再度、ディスクの管理を見ると、Dドライブができているので、
メーカー付随の不要なソフトを全部消した後に、VHSテープ吸い上げソフトをインストールして*5再度、UbuntuのインストールDVDから起動。

インストールの選択で、さっきまではなかった「〜別にインストール」という選択肢が出現したので、それを選ぶ。

どのくらいUbuntuに割り当てますか?みたいな画面になったので、マウスでドラッグして、50G程割り当てて、インストールを選択。
この後は、地域や、キーボードや、ユーザの作成をするだけで特に迷う箇所はなく、無事にインストールが完了した。


今回の作業で勉強になった点は、以下の2点だ。

  • OSがインストールされているドライブはリサイズできない。
  • 既存のOSを潰さずに、別のOSを入れるには、OSの入っていないドライブが必要。

さっきのパーティション手動は、ルート以外の/homeとか、/varとかを別のドライブ*6にするときのツールで、
全部OS領域で割り当たっていたから、それが出来なかったんだろう。



ちなみに、Dドライブを作った後に、手動パーティションを選んだ場合は上記のようになった。
オレンジ部分が自由にいじれる箇所なんだろう。

*1:Windows8に付随していたimageburnでダウンロードしたisoファイルを焼いた

*2:質問者の環境がみんな複数のドライブでトライしていたから

*3:ダッシュボードだっけ?

*4:WindowsXP・・最後の仕事よ。とか思ったりw

*5:これがXPを残す理由だったりします

*6:スライス?

放置解禁

ずーと放置してました。埃を払ってまた心機一転続けていけたらなあ。
ネタに関しては充電完了済みなんで、大丈夫(のはず)
にしても、しばらく見ないうちにまた仕様が変わったのかな?
編集の方法が若干変わっていて、ちょっと手間取った(汗
まあ、これもスマフォ同様慣れなんだろうね。


今回のバッチネタは、業務中かなりはまった一品でした。
いつも手動だった日付の変更を、
自動にして楽したい・・の思いで直し始めたら
そこからギアガの大穴の如くハマルハマル(笑)


特定の月だけ表示がおかしくなる。
それもバッチだからプリントデバッグぐらいしかできないし、、
散々悩んで、結局はヘルプを見て一件落着。


困ったらやっぱりヘルプ見ないとねえ(遠目)

実行月の1ヶ月前を取得する

:: 実行年月の1ヶ月前をYYYYMM形式で出力(バグあり)
::8月と9月の出力がおかしい

::デバッグ用
set DT1=201008
::set DT1=%date:/=%

set YYYY=%DT1:~0,4%
set MM=%DT1:~4,2%

::ゼロ埋めするかどうか
set FLG_ZERO=0
if "%MM%"=="01" goto NOT_ZERO
if "%MM%"=="12" goto NOT_ZERO
if "%MM%"=="11" goto NOT_ZERO
set FLG_ZERO=1

:NOT_ZERO

::前年月を算出
if "%MM%"=="01" (
	set /a YYYY-=1
	set MM=12
) else (
	set /a MM-=1
)

::ゼロ埋め
set YYYYMM=
if "%FLG_ZERO%"=="1" (
	set YYYYMM=%YYYY%0%MM%
) else (
	set YYYYMM=%YYYY%%MM%
)

echo %YYYYMM%

pause


原因は、08と09が10進数でなく、8進数で認識されてしまうから。
以下、set /?より抜粋。

コマンド スクリプト外でコマンド ラインから SET /A を実行すると、
式の最終的な値が表示されます。
割り当て演算子を使うには、割り当て演算子
の左側に環境変数名が必要です。
数値は 10 進数ですが、プレフィックスとして 0x
を付けると 16 進数、0 を付けると 8 進数になります。従って、0x12 は 18、
あるいは 022 と同じです。
8 進表記を使う場合は、注意してください。08 や
09 は、8 と 9 が有効な 8 進数ではないため、
有効な数値ではありません。