So-net無料ブログ作成
前の10件 | -

Office 2019のオフラインインストール用のbatファイルを作成 [その他]

ローカルネットワークのパソコンに、ボリュームライセンスで購入したOffice Standard 2019をオフラインでインストールすることになった。
誰でも出来るようにということで、オフラインインストール用のDVDメディアを作成した。

オフラインでのインストール準備に必要なファイルは前の記事を見てください。
ボリュームライセンスによるExcel 2019 単体のオフラインインストール

オフラインインストール用データのダウンロード
32ビット/64ビットの両方をダウンロードした。

・configuration-x86.xml (32ビット版)
<Configuration>
  <Add SourcePath="C:\Office2019\Download_x86" OfficeClientEdition="32" Channel="PerpetualVL2019">
      <Product ID="Standard2019Volume">
         <Language ID="ja-jp" />
      </Product>
  </Add>
</Configuration>

・configuration-x64.xml (64ビット版)
<Configuration>
  <Add SourcePath="C:\Office2019\Download_x64" OfficeClientEdition="64" Channel="PerpetualVL2019">
      <Product ID="Standard2019Volume">
         <Language ID="ja-jp" />
      </Product>
  </Add>
</Configuration>

コマンドプロンプトから次を実行
setup /download configuration-x86.xml
setup /download configuration-x64.xml

これで、次のフォルダに32ビット/64ビットのデータがダウンロードできる。
C:\Office2019\Download_x86
C:\Office2019\Download_x64

インストーラーファイルの作成
次の2つのファイルを作成する。(シフトJISで作成する)
・configuration-template.xml
・Office_Setup.bat

configuration-template.xml
<Configuration>
  <Add SourcePath="$SourcePath$" OfficeClientEdition="$OfficeClientEdition$" Channel="PerpetualVL2019">
    <Product ID="Standard2019Volume">
      <Language ID="ja-jp" />
    </Product>
  </Add>
</Configuration>

Office_Setup.bat
rem Office 2019 のオフラインインストールを実行します。
rem DVDメディア等にオフラインデータを書き込んでいることを想定しています。
@echo off
cls

:SELECTED_BITS
echo.
echo インストールをする Office のバージョンを入力してください。
echo.
echo 1:32ビット版
echo 2:64ビット版
echo.
set /P InstalledBits="インストールをするバージョンは?:"

rem 構成ファイルのテンプレートのパス
set TemplatePath=%~dp0configuration-template.xml
rem Tempフォルダに出力した構成ファイルののパス
set ConfigurationPath=%temp%\configuration.xml

rem 構成ファイルのパラメータ
if %InstalledBits%==1 goto SELECTED_32BIT
if %InstalledBits%==2 goto SELECTED_64BIT
goto SELECTED_ERROR

rem 32ビット版を選択
:SELECTED_32BIT
set SourcePath=%~dp0Download_x86
set OfficeClientEdition=32
goto INSTALL

rem 64ビット版を選択
:SELECTED_64BIT
set SourcePath=%~dp0Download_x64
set OfficeClientEdition=64
goto INSTALL

rem 入力の間違い
:SELECTED_ERROR
echo.
echo.
echo 1 または 2 を入力してください。
echo.
pause
cls
goto SELECTED_BITS

:INSTALL
rem 既に構成ファイルがあれば削除
if exist %ConfigurationPath% del %ConfigurationPath%
rem テンプレートを読み込みパラメータを置き換えて
rem Tempフォルダに構成ファイルを出力する。
setlocal enabledelayedexpansion
for /f "delims=" %%a in (%TemplatePath%) do (
    set line0=%%a
    set line1=!line0:$SourcePath$=%SourcePath%!
    set line2=!line1:$OfficeClientEdition$=%OfficeClientEdition%!
    echo !line2!>>%ConfigurationPath%
)
endlocal

rem setup.exeを実行
start %~dp0setup.exe /configure %ConfigurationPath%

:END


DVDメディア(USBメモリ)へデータの書き込み
次のフォルダ、ファイルをメディアに書き込む。
・Download_x86 のフォルダ
・Download_x64 のフォルダ
・setup.exe
・Office_Setup.bat
・configuration-template.xml

Office のインストール
DVDメディア(USBメモリ)に書き込まれた、Office_Setup.bat を実行します。
インストールをするバージョン(32ビット/64ビット)を選択してEnterキーを押すと
オフラインでのインストールが始まります。


やってることの説明とか
configuration-template.xmlに書かれた$SourcePath$や$OfficeClientEdition$をbatファイルで書き換えて、Tempフォルダにconfiguration.xmlとして出力して、setup.exeに、この出力したxmlを渡して実行している。

nice!(0)  コメント(0) 

Edge仕様のWebBrowserコントロール(WebView) [VB.NET]

WebBrowserコントロールを使うとIE仕様になってしまい、サイトによってはJavaScriptが動かなかったりします。
そこで、WebBrowserコントロール(IE)ではなく、WebViewコントロール(Edge)を使用します。

実行環境が決まってるようで、このバージョン以降が必要のようです。
・Windows 10 1803
・Visual Studio 2017
・.NET Framework 4.6.2


Visual Studio 2017 を起動し、NuGet から次のパッケージをインストールします。
この文字列で検索すると見つかります。
「Microsoft.Toolkit.Forms.UI.Controls.WebView」

ツールボックスの「アイテムの選択」から「.NET Framework コンポーネント」タブを開き
次のパスのdllを参照から開きます。
C:\Users\<ユーザー名>\.nuget\packages\microsoft.toolkit.forms.ui.controls.webview\5.1.1\lib\net462\Microsoft.Toolkit.Forms.UI.Controls.WebView.dll


あとは、ツールボックスからWebViewコントロールをフォームに張り付けて完成。

フォームを開くとユーザーIDとパスワードが入力されてログインしたいときのサンプルプログラム
Imports Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT

Public Class frmMain
    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        WebView1.Navigate("https://www.example.com/login.html")
    End Sub

    Private Sub WebView1_NavigationCompleted(sender As Object, e As WebViewControlNavigationCompletedEventArgs) Handles WebView1.NavigationCompleted

        If WebView1.DocumentTitle = "ログイン画面" Then
            Dim script As New System.Text.StringBuilder

            'ユーザーID uuuuu を入力
            script.AppendLine(String.Format("document.getElementsByName('UserId').item(0).value = '{0}';", "uuuuu"))
            'パスワード ppppp を入力
            script.AppendLine(String.Format("document.getElementsByName('Password').item(0).value = '{0}';", "ppppp"))

            WebView1.InvokeScript("eval", script.ToString())

            'ログインボタンを探してクリック
            script.Clear()
            script.AppendLine("for (i in document.getElementsByTagName('input')) {")
            script.AppendLine("    if (document.getElementsByTagName('input').item(i).value === 'ログイン') {")
            script.AppendLine("        document.getElementsByTagName('input').item(i).click();")
            script.AppendLine("    }")
            script.AppendLine("}")

            WebView1.InvokeScript("eval", script.ToString())
        End If

    End Sub
End Class


WebBrowserコントロールにあったDocumentプロパティが見当たらなくて
inputタグにどうやって値を入れるの?と、だいぶ困った。
WebViewコントロールはJavaScriptでhtmlを操作するようだ。

参考URL:WPFやWindowsフォームでEdgeのWebViewを使うには?[Windows 10 1803以降]:.NET TIPS - @IT
参考URL:【C#】WebBrowserコントロールをEdgeに対応させる | 思い立ったが吉日

さらにメモ
Chromium仕様のブラウザコントロール(CefSharp)もあるみたい。
参考URL:WinFormsでChromiumブラウザコンポーネント(CefSharp)を使ってみる
参考URL:VB.net(WinForms)でのCefsharpの基本的な扱い方について
nice!(0)  コメント(0) 

量子コンピュータで計算ってどうするの? [その他]

量子コンピュータって何かすごくてカッコイイ!と思って仕組みを見たりしたけど、さっぱり分からなかった。
0でも1でもなく両方の状態を持つ重ね合わせの状態になるからすごい!ってことしか分からなかった。

重ね合わせた状態がどうやって1つの計算結果になるのかが分からない。
で、調べいくうちに量子アルゴリズムで計算結果を求めるんだな!ってことが何となく分かった。
計算結果を求めるために答えの確率を上げていく必要があるってのも何となく分かった気がしただけだった。
量子アルゴリズムの説明がさっぱり過ぎて諦めた。

で、「習うより慣れよ」ってことで量子コンピュータで 1+1=2 はどうしたら計算できるのかを調べてみた。
参考URL:量子コンピュータで1+1を計算する

この参考URLのサイトがすごく分かりやすかった!
AND回路やOR回路を組合せて計算するのかー。と面白かった。

0+0, 1+0, 0+1, 1+1 を同時に計算することが出来て、結果を求めるのに何回も計算して確率が一番高いのが答えだ!ってのが量子コンピュータなんだ!ってのが面白かった。
nice!(0)  コメント(0) 

SQL Server 2017のメンテナンスプランで「エラー: 18456」が出る [その他]

Windows 10 Pro で SQL Server 2017 Standard を動かしている。
DBの自動バックアップを行うためにメンテナンスプランを作成した。
DBの自動バックアップは正常に完了し、バックアップファイルは出来ているが SQL Server のエラーログに次の内容が残っていた。

Login failed for user 'sa'. 理由: パスワードが、指定されたログインのパスワードと一致しませんでした。 [クライアント: <local machine>]
エラー: 18456、重大度: 14、状態: 8。

・SQL Server Management Studio (SSMS) 17.9.1 を使用してメンテナンスプランを作成した。
・SQL Server 認証モードと Windows 認証モードに設定している。
・SSMS で接続するユーザーは sa を使用している。

SQL Server のバグっぽい?という情報もありますが、Windows 認証モードに設定すると直るようです。
SQL Server 認証モードで使いたいのに!

参考URL: Windows2016&SQLSERVER2016メンテナンスプランでエラー18456、重大度:14、状態:8。が出て実行できません。
参考URL: Windows Server 2012 R2-SQLServer 2016 SP1のsaによるメンテナンスプランバックアップにて エラー: 18456発生
参考URL: Maintenance plan - Login failed for user 'sa' on master database
nice!(0)  コメント(0) 

DataGridViewのセルで右寄せにしたときの余白を設定する [VB.NET]

DataGridViewのセルに数値データを右寄せで表示したとき、
右端に行き過ぎて何となくいやだなと思ったので、セルの余白調整方法を調べた。

dgv.Columns("ITEM_VALUE").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
dgv.Columns("ITEM_VALUE").DefaultCellStyle.Padding = New Padding(0, 0, 20, 0)


右の余白を20に設定したら次のようになった。
20190513_001.png
nice!(0)  コメント(0) 

VMwareにWindows Server 2016(評価版)をインストールできない [その他]

VMware PlayerにWindows Server 2016(評価版)を
インストールしようとしたらエラーが出たので対処したときのメモ。
インストールは「後からOSをインストール」にしている。

エラーは次のが出た。

unsuccessful
→ EFI Network

1.VMwareのロゴのときESCを押す。
2.Boot Managerの画面が表示される。
3.EFI VMware Virtual SATA CDROM Driveを選択してEnterキーを押す。
4.Press any Key to boot From CD or DVD...が表示されているときにEnterキーを押す。
5.インストールが始まる!

参考URL
「unsuccessful EFI Network」と表示されたときの対処
nice!(1)  コメント(0) 

ボリュームライセンスによるExcel 2019 単体のオフラインインストール [その他]

ボリュームライセンスでExcel 2019のみを購入し、オフラインでインストールしたときのメモ。
オンラインでのインストールを一番下に追記。
インストーラー用batファイルの作成を別記事に追加。

Office 2019からISOのダウンロードがなく、オンラインでインストールするのみになっています。

1.VLSCからExcel 2019のダウンロードでOffice 2019 Deployment ToolのEXEをダウンロードする。

2.ダウンロード後、EXEを実行して展開先に適当なフォルダ("D:\Excel2019")を指定する。
展開先のフォルダにはsetup.exeとサンプルのxmlがある。

3.展開先のフォルダに"configuration.xml"を作成する。
SourcePathはダウンロードしたファイルを保存するフォルダを指定
ファイルの内容は、Excel 2019 32ビット版の日本語です。
<Configuration>
  <Add SourcePath="D:\Excel2019\Download" OfficeClientEdition="32" Channel="PerpetualVL2019">
      <Product ID="Excel2019Volume">
         <Language ID="ja-jp" />
      </Product>
  </Add>
</Configuration>


4.コマンドプロンプトを管理者で実行し、setup.exe(展開先にある)のフォルダに移動して次のコマンドを実行する。
setup /download configuration.xml

ダウンロード中の進捗メータは表示されないので、コマンドが終わるまで待つ。

5.ダウンロードが終われば、"D:\Excel2019"のフォルダごと、USBメモリ等にコピーする。

6.インストールのためにSourcePathのフォルダを書き換える
<Configuration>
  <Add SourcePath="E:\Excel2019\Download" OfficeClientEdition="32" Channel="PerpetualVL2019">
      <Product ID="Excel2019Volume">
         <Language ID="ja-jp" />
      </Product>
  </Add>
</Configuration>


7.コマンドプロンプトを管理者で実行し、setup.exeのフォルダに移動して次のコマンドを実行する。
setup /configure configuration.xml


8.いつものExcelのインストールとあとは同じ。

参考URL:Excel2019の単体ダウンロードについて
参考URL:Excel展開ツールのConfiguration.xml編集について
参考URL:導入 Office 2019 (IT プロフェッショナル向け)
参考URL:Office 展開ツールのオプションの構成
参考URL:Office 展開ツールでサポートされる製品 ID

オンラインインストール


nice!(1)  コメント(0) 

画面作成中にユーザーコントロールのLoadイベントを処理させない [VB.NET]

ユーザーコントロールを使用したForm画面の作成中に次のエラーが出てForm画面が開かなくなった。
"ユーザー '' はログインできませんでした。"

ユーザーコントロールのLoadイベントにApp.configからDBへの接続情報を取得して
DBからデータを取得、表示をするプログラムを追加してからエラーが出ていた。

Form画面を開くときに、配置したユーザーコントロールのLoadイベントが実行され
App.configから接続情報を取得できていないのが原因で、DBへの接続ができずエラーとなっていた。

画面作成中は、Loadイベントが実行されないようにしようと思って調べた時のメモ。
Private Sub UserCtrl_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '開発中は処理をしない
    If Me.DesignMode Then Return

    'DBへの接続と取得・表示

End Private

参考URL:.NET:Tips > デザイン:デザイン時に処理を実行させない

ユーザーコントロールが入れ子になっているとき、子のユーザーコントロールの
DesignModeはFalseを返すようです。
その情報を調べた時のメモ。
参考URL:デザインモード(this.DesignMode)を正しく得ることができない場合があります
参考URL:入れ子させた UserControl の DesignMode が false になるのを回避したい
nice!(1)  コメント(0) 

DataGridViewのセル編集が3回クリックで編集できるようになる [VB.NET]

DataGridViewでセルを直接編集するために編集を有効にしたけど
セルを3回クリックしないと、編集モードにならなかった。

1回目のクリックで、セルが選択され
次のダブルクリックで編集モードになってる?

ダブルクリックで編集モードとなるようにしたかったのでプログラムのメモ。
'EditModeを次の設定に変更する
'DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
Private Sub DataGridView1_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
    Dim dgv As DataGridView = DirectCast(sender, DataGridView)

    If {"Column1", "Column2", "Column3"}.Contains(dgv.Columns(e.ColumnIndex).Name) AndAlso e.RowIndex >= 0 Then
        dgv.BeginEdit(True)
    End If
End Sub

nice!(0)  コメント(0) 

NASの共有フォルダにつながらない [その他]

Windows 10 Pro バージョン 1809をクリーンインストールしました。

データをNASから取ってこようとしたけど、共有フォルダにつながらない。

「\\ にアクセスできません」とメッセージが出るのみ、エラー内容が特定できないと表示される。

色々しらべて解決したのでメモ。

[コントロール パネル]→[ネットワークと共有センター]を開く。
共有の詳細設定の変更をクリックする。
現在のプロファイルの以下を有効にする。
・ネットワーク探索を有効にする。
・ファイルとプリンターの共有を有効にする。

[コントロール パネル]→[プログラムと機能]を開く。
Windowsの機能の有効化または無効化をクリックする。
・SMB 1.0/CIFS File Sharing Support の中を全部チェック状態にする。

これで共有フォルダにつながるようになった!

nice!(0)  コメント(0) 
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。