以前に Excel VBA で作成したものを、Visual C# で書き換えてみました。
Excel ではシートのセルに入れていた情報はテーブルに入れました。
また、鹸化剤については苛性ソーダだけを対象にするように仕様を変更しました。
オルト珪酸ソーダは熟成しても珪酸塩が含まれるので洗顔などの用途に向かないからです。
Visual C# でフォーム間のデータ受け渡しはちょっと大変でした。classや構造体で受け渡したかったのですが、うまく出来なくて "," で区切った一連の文字列として渡し、受け取った側で解体するといった面倒なやり方になりました。
それ以外はコードを VBA から C# に変換していくだけなので問題ありませんでした。
多少仕様変更したところもありますが、基本機能は同じです。
Visual C# から Excel VBA を呼び出してコピーさせます。
"CopyMacro.xlsm" は、 適当なフォルダに入れます。今回はこの C# プログラムのカレントフォルダに入れました。
書式・数式など含めてコピーしますので、循環参照やリンク切れに注意して利用して下さい。
Windows10, VisualStudio2015, Excel2013 で動作確認済み
C# で Excel の Range を 書式なども含めてコピーするC# で Excel の Range を 書式なども含めてコピーするには次のようにします。
|
Excel などの VBA では、フォームに Zoom プロパティがあるのでそれを調節することで、画面が切れずに拡大・縮小ができます。
画面より大きなフォームを表示する画面より大きなフォームを表示するには次のようにします。
|
高解像度の画面目いっぱいに作ったフォームをそれより解像度の低いモニターで表示するとフォームの右と下が切れてしまいます。
そんな場合に、フォームサイズを小さくしてスクロールさせる方法を紹介します。
使いづらくはなりますが、とりあえず利用可能に成ります。
Excel VBA などではフォームに Zoom というプロパティが有りそれを調節することで、画面の表示倍率そのものを変化できましたが、C# にはないですね。
画面より大きなフォームを表示する画面より大きなフォームを表示するには次のようにします。
|
この印刷では、フォームがプリント領域よりも大きいときに用紙にピッタリ収まるように縮小しているのがポイントです。
使用するプリンターは [A4] サイズ用紙が利用できるものとしています。
印刷出力は通常使うプリンターを使用することになります。
印刷上部に日付と時刻がプリントされます。
必要ない場合は、
e.Graphics.DrawString(...);
の行をコメントにして下さい。
フオームは横長が基本なので、印刷は [横向き] としています。
また、カラー印刷にしています。
それらも引数として渡すようにして、その値を使うように変更すれば自由度は増すでしょう。
(Windows10 VisualStudio 2015 C# フォームアプリケーションで動作確認済み)
|
元のパソコンに入れていたSSDを外付けのUSB接続で使って間もなくパーティションで仕切ったドライブの1つが読めなくなりました。
「ディレクトリが壊れているために読めません」とエラーが出ました。
静電気かなんかで壊れたのかなと思いつつ、ネットでググってみました。
CHKDSKをかければ治ることもあるらしいのでやってみました。
スタートボタンを右クリックしてコマンドプロンプトを出します。
「ドライブG:」が読めないので
chkdsk g: /f
と入れてEnterキーを押します。
何だかたくさんメッセージが出てきました。
ディレクトリが壊れて読めないので、削除してファイルを1つずつ読んで作り直しているというメッセージでした。
数分後すべての作業が完了してchkdskが終了しました。
どうなったかと気にしながらドライブG:をもう一度読み直してみました。
オー、素晴らしい。
ちゃんとファイルが読めるではありませんか。
いやー、良かった良かった。
今まで使っていたパソコンが古くなったので新しく買い替えました。
価格を安くしたかったのと余分なソフトが入ってないものがよいということでBTOショップのものにしました。
私が購入したのはFRONTIERというショップのNZシリーズです。
インテルCOREi7で15.6インチのノングレア フルHD液晶モニターが付いています。
メモリーは16GB(8GBx2)にしました。デュアルチャネル接続なのでシングルに比べて2倍の速度になります。
グラフィック装置はNVIDIA GeForce GTX950Mがついています。
記憶装置には安くなってきたSSDを2基おごりました。250GBと500GBのものです。
本当は小さいほうのSSDはM.2のPCI接続のものが5倍くらい速くてよいのですが、まだ出始めで割高なのでM.2のSATAⅢ接続のものにしました。
あとはドライブ装置にBlueRayを付けました。
いろいろなショップを比べたのですが、手ごろなスペックと価格の安さからここに決めました。
ちょうど伊勢志摩のG7首脳会議が開かれるということでG7セールというのをやっていて、
この機種は定価より20,000円引きだったのも良かったです。
このショップは評判も割とよくてそれほどひどいものはないようです。
納期も一週間の予定が5日目に届きました。
自宅では23インチの外部モニターに表示しています。テレビにも出力できるようにしてます。
YOUTUBEのカラオケを再生しながらテレビに出せば手軽に楽しめます。
サウンドはUSBのDACでステレオから出力してます。
使ってみた印象は、一昔前のものと比べると非常に速くて快適です。
Windowsの起動は5秒あまりです。スリープにする必要がないくらい速いです。
前のパソコンからのデータの引っ越しは、入っていたSSDをUSB用のケースに入れ接続しコピーしました。
ソフトはコントロールパネルのプログラムと機能の画面コピーをプリントして必要なものを一つずつダウンロード・インストールするしかありません。これには一晩中かかりました。
メールソフトにはThunderBirdを使っているのですがこれのプロファイルはコピーするだけで設定や今までのメールも引き続き使えるので便利です。
またブラウザはChromeを使っていますが、これもログインするだけで今までのお気に入りやパスワードなんかも其のまま使えて便利ですね。
Windows10では、ちょっとした問題点が2つあります。
ひとつ目はWindows起動時にテンキーのNumLockがオフになってしまっているということです。
今までは13.3インチのノートだったのでテンキーがなく知りませんでしたが毎回起動したらNumLockをオンにするのは煩わしいですね。
調べたら、レジストリの値を書き換えるだけで治りましたので困っている方は参考にしてください。
まずレジストリエディタを起動します。
Windowsキーを押しながら”R”を押します。
そこへ「regedit」と入れてOKします。
全部で十数種類のアドインを作りました。
プログラムとしては1つですがボタンをどんどん追加して行って作りました。
適当な場所にセパレータを入れるとボタンが分類できます。
全てのアドインはCtlキーを押しながら複数の選択範囲をしたときは、その全てを処理するようにしました。
参考にしてもらえれば嬉しいです。
まず罫線関係のものです。
作り方を順に説明します。
前準備として、OfficeToolsForVS2015 をインストールしておきます。
やり方は、次のサイトを参考にしてください。
>>> 2017/9/8 <<< pakuさんからの要望より、他のソースコードも掲載しました。
同一LAN内空だけでなくインターネットからもPCを起動できるアプリを探していました。
これができると外出先からWOLでPCを起動してその後TeamViewerを使って自分のPCを利用できるからです。自分のPCにしかない環境・ソフトやアプリ・ファイルなどがそのまま利用できるのが良いところです。
私が使ってみたのはTommaso Madonia「WakeUp - The Wake on LAN (WOL) tool」です。
(有料です 2016/3/24現在\120) (有料です 2016/3/24現在\120)
パソコンで音声認識ができると言うことが分かったので、マイクを購入して試してみました。
実はこのブログもほとんど音声認識で記述しています。
Windowsでは、Vista以降音声認識できるようになったということです。
私は知りませんでした。
スマートホンなどではできるので、パソコンでもできるのかなと調べてみました。
随分と前から可能だったんですね。
これは、メモ帳やメールなどWindowsのほとんどのソフトで使えます。
使ってみると、日本語はずいぶん正しく認識されますがカタカナ語はうまく変換できないものもあります。
おそらく変換辞書に乗ってない言葉は認識できないんでしょうね。
まだ使い始めたばかりで使い方がよく分かっていないせいもあります。
でもキーボードからすべて打ち込むのに比べるとずっと速く記入できて良いです。
これだとキーボードの操作がほとんど不要になります。
キーパンチャーみたいな仕事はだんだんと無くなってくるんでしょうね。
それと文章を考えるのに集中できるので考えがまとめやすいです。
だから、アイデアなどを記述していくのに非常に良いと思います。
こんな便利なものもっと早く知っていればよかったなあとちょっと後悔してます。
Windows10へアップグレードする前に、
Windows7など 古いOSでは BIOSの設定画面で 詳細タブの
USB設定で レガシーUSBサポートを使用しない にしないとアップグレードできません。
アップグレードしたあとも、そのままにしておかないと起動できません。
これが一番大事なことです。ちゃんとやったのに忘れてて、すみませんでした。
因みに 私が使っているのは 富士通のLIFEBOOK SH760/AN という機種です。
これはメーカーのWindows10へのアップグレード対象機種には指定されていません。
でも、CPU、メモリー、ファイルシステム、アプリケーションなど
互換性に問題はありませんでした。
でも、HDDはSSDに換装してあります。この時点でメーカー保証対象外ですけれども。
SATAは II で、III ではないですが、それでも HDDに比べたらSSDは7~10倍速いです。
普段使用するには、十分なスペックです。
また、SSDではデフラグが基本的に不要です。
HDDだとデフラグをスケジュール化して週に一度とかしてると思いますが、
それが要りません。しかも読み書きがずっと高速です。
価格も下がってきています。Intelの240GBだと、535 Series SSDSC2BW240H6R5が
Amazonで \15,700程度です。
新品のPCを買う価格の1割程度です。
私としては、このPCが壊れるまで 使い続けたいたと思います。
Windows10がリリースされてから、私のWindows7マシンも早くアップグレードしたいと思っていました。
でも何度試みても、最初の再起動の画面で止まってしまって進みませんでした。
エラーコードを見ると0xC1900101-0x20017というものでブートがうまく出来なかったというものです。
ネットで色々調べて片っ端から試していきました。
やってみたことは、
ウイルスチェックソフトの一時削除
デバイスのインストール設定で、
Windows Updateからドライバーソフトをインストールしないにする
回復パーティションの削除
BIOSのアップデート
不要なデバイスドライバーの削除
でもダメでした。
ここで調べていくうちにわかったことは、
Windows10のアップグレードで再起動するときには、今までのデバイスドライバーを引き継がないということです。
だから、一般的でないデバイスドライバーはサポートしていないだろうということが想像できます。
じゃあ、私のPCで一般的でないのは何かと考えてみると、
・生体認証(指紋認証)
・WiMAX
・Bluetooth
ぐらいです。
これらは削除できないものがあったりしたので、
コンピューターの管理画面から、それらのデバイスドライバーを全て「無効」にしてみました。
こうしてから、もう一度アップグレードしてみたら、ようやくうまく出来ました。
なお、アップグレード後は元のデバイスのドライバーが再設定されていましたから、アップグレード中だけデバイスドライバーが最低のものになるようです。
その後で、ディスクの領域を見てみると変なところ(CドライブとDドライブの間)に回復パーティションが作られていました。
これは多分アップグレード後一ヶ月間は元のOSの状態に戻せるということだったので、そのためのものだと思います。
さて、Windows10を少し使ってみました。
見た目は WindowsXP時代みたいになって、ウインドウの透過がなくなりました。
また、ウインドウの四隅も角張って丸みがなくなりました。
レスポンスは良いと思います。これはOSが低スペックのタブレットでも快適に動作するように作られているからだろうと思います。
メニューの使い方やタスクバーのアイコンが何を表しているかなどは、大体わかります。
ただし、メニューは左クリックの場合はアプリで右クリックの場合はシステムの状態や変更に関するものと別れました。
また、来年4月末ぐらいからはWindows10でiOSやAndroidのアプリが動くようになるというニュースを見ました。Windowsマシンで他のスマホやタブレット用のアプリが動作するのは面白いですね。使えるようになるのが楽しみです。