Electronを使ってみる
開発環境は、Windows 10 Pro(64bit) + node v14.17.0 + npm 6.14.13。
1.公式サイトへアクセスし、ヘッダー部分のDocsをクリック
2.Quick Startのリンクをクリック
以下、Electron DocumentationのQuick Startに基づいて、やっていきたいと思います。
3.コマンドプロンプトを立ちあげてElectron用のディレクトリを作成する
※ここでディレクトリ名にelectronとすると、インストール時にエラーになるので、それ以外の名前をつけましょう。
cd c:\ && mkdir electron-app && cd electron-app
4.コマンドプロントでpackage.jsonを作成する
npm init -y
5.package.json内を修正
mainの欄は、index.jsからmain.jsに変更。
authorとdescriptionの欄は、空文字から、適当な文字を入力して変更。
scriptsの欄は、 "start": "electron ."を追加。
そして、以下のようにしました。
{ "name": "electron-app", "version": "1.0.0", "description": "Hello World", "main": "main.js", "scripts": { "start": "electron .", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "koiken", "license": "ISC" }
6.コマンドプロンプトからElectronをインストールする
npm i -D electron
7.main.js、preload.js、index.htmlの3つのファイルを作成します。
main.js
const path = require('path') const { app, BrowserWindow } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) win.loadFile('index.html') } app.whenReady().then(() => { createWindow() app.on('activate', function(){ if(BrowserWindow.getAllWindows().length === 0) createWindow() }) }) // Mac OS以外(Windows, Linux OS)だと、ウィンドウを消すと、バックグラウンドのプロセスも終了する app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() })
preload.js
window.addEventListener('DOMContentLoaded', () => { const replaceText = (selector, text) => { const element = document.getElementById(selector) if (element) element.innerText = text } for (const dependency of ['chrome', 'node', 'electron']) { replaceText(`${dependency}-version`, process.versions[dependency]) } })
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP --> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <title>Hello World!</title> </head> <body> <h1>Hello World!</h1> We are using Node.js <span id="node-version"></span>, Chromium <span id="chrome-version"></span>, and Electron <span id="electron-version"></span>. <script src="./renderer.js"></script> </body> </html>
7.コマンドプロンプト上で、以下のコマンドを入力
npm start
実行結果が下になります。ウィンドウが先に表示されて、時間差で、HTML部分が読み込まれます。
VBA(Excel)で印刷の設定を行う
開発環境は、Windows 10 Pro(64bit)。動作テストは、Excel 2019。
印刷範囲の設定
With ActiveSheet.PageSetup .PrintArea = "$A$1:$BT$37" End With
タイトル行の設定
With ActiveSheet.PageSetup '1枚ごとに毎回、タイトル行が印刷される .PrintTitleRows = "$1:$3" End With
余白の設定
With ActiveSheet.PageSetup '上下左右に1cm、ヘッダーとフッターに0.5cmの余白設定 .LeftMargin = Application.CentimetersToPoints(1) .LeftMargin = Application.CentimetersToPoints(1) .TopMargin = Application.CentimetersToPoints(1) .BottomMargin = Application.CentimetersToPoints(1) .HeaderMargin = Application.CentimetersToPoints(0.5) .FooterMargin = Application.CentimetersToPoints(0.5) End With
向きの設定
With ActiveSheet.PageSetup '縦 .Orientation = xlPortrait '横 .Orientation = xlLandscape End With
拡大/縮小
With ActiveSheet.PageSetup '100% .Zoom = 100 '65% .Zoom = 65 End With
すべての列を1ページに印刷
With ActiveSheet.PageSetup .Orientation = xlPortrait .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = False End With
すべての行を1ページに印刷
With ActiveSheet.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesWide = False .FitToPagesTall = 1 End With
ヘッダーの右部分にページごとの文字の追加
With ActiveSheet.PageSetup 'フォントサイズを36に設定している 'フォントサイズを設定する際は半角スペースを空けること '4枚印刷するつもりで、1枚目ならば、 『1 / 4 ページ』のように表示される .RightHeader = "&36 &P / &N ページ" End With
フッターの右部分にページごとの文字の追加
With ActiveSheet.PageSetup '下線を引いて太字でフォントサイズを36に設定している '4枚印刷するつもりで、1枚目ならば、 『1 / 4 ページ』のように表示される .RightFooter = "&U&B&36 &P / &N ページ計" End With
垂直方向の改ページ
With ActiveSheet '垂直方向の4列目の後で改ページ .Columns(4).PageBreak = xlPageBreakManual '垂直方向の4列目の後の改ページを削除 .Columns(4).PageBreak = xlPageBreakNone End With
水平方向の改ページ
With ActiveSheet '水平方向の5列目の後で改ページ .Rows(5).PageBreak = xlPageBreakManual '水平方向の5列目の後の改ページを削除 .Rows(5).PageBreak = xlPageBreakNone End With
改ページを削除
With ActiveSheet .ResetAllPageBreaks End With
VBA(Excel)でセルのアルファベットと数字を相互に変換させる
開発環境は、Windows 10 Pro(64bit)。動作テストはExcel 2019。
アルファベット→数字
For文で処理しやすいように、アルファベットを数字にしたい場合があります。
そういう時は、以下のように、アルファベットから数字に変換して処理します。
Debug.Print(Columns("AE").column) '31 Debug.Print(Columns("BT").column) '72
数字→アルファベット
逆に、数字を見て、アルファベットの何にあたるのかを知りたい場合は、
以下のように、数字からアルファベットに変換します。
Debug.Print(Columns(31).address) '$AE:$AE Debug.Print(Columns(72).address ) '$BT:$BT 'Split関数で抽出する Debug.Print( Split(Columns(31).Address(False, False), ":")(1) ) 'AE Debug.Print( Split(Columns(72).Address(False, False), ":")(1) ) 'BT
■参考リンク
【ExcelVBA】列名のアルファベットと列番号の数字を相互変換する
https://qiita.com/11295/items/c26017eb21cb319fd29d
VBA(Excel)でピボットキャッシュを生成する際のエラーについて
開発環境は、Windows 10 Pro(64bit)。
ピボットキャッシュを作成する際に「型が一致しません」というエラーが出現することがある。
作成したExcel(Excel 2019)では問題なかったが、バージョンの古いExcel(Excel 2010)で動作させると、上記のようなエラーメッセージが表示されてしまった。その場合は、以下のように、CurrentRegion.Addressと指定することで解決できた。エラーが発生した時には、CurrentRegion.Selectと書いていた。
Addressは、CurrentRegionで指定した、その範囲の絶対参照のアドレスを取得できる。
Dim ピボットキャッシュ As PivotCache Set ピボットキャッシュ = ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=Worksheets(1).Range("A1").CurrentRegion.Address _ )
コンピュータの用語の自分用メモ
プロセス
・処理の単位。
・PID(プロセスID)と呼ばれる数字で管理される。
・メモリ空間はプロセスごとに保護されているので、プロセス間で情報を共有したい場合は、プロセス間通信を行う必要がある。ただ、速度が遅いので、パフォーマンスが低下する。
スレッド
・OSがCPUの実行時間を割り当てるための単位。
・1つのプロセス内に1つ以上のスレッドができる。
・同一プロセス内のスレッドであれば、メモリやその他リソースを共有している。
Nuxt.jsを使ってみる
開発環境は、Windows 10 Pro(64bit) + node v14.17.0 + npm 6.14.13。
1.Cドライブ直下にnuxtという名前のディレクトリを作成し、カレントディレクトリしておく
cd c:\ && mkdir nuxt && cd nuxt
2.公式サイトへアクセスし、はじめるボタンをクリック
3.create-nuxt-appを使うために以下のコマンドを入力し、パッケージをインストール
※npxはnpm 5.2.0以降だとデフォルトで入っている
npx create-nuxt-app hellonuxt
4.対話モードになって、Project name:と表示されるので、ここは、入力したプロジェクト名であるhellonuxtのままで良いので、Enter。
5.Programming language:で、TypeScriptを選んで、Enter。
6.Package manager:で、Npmを選んで、Enter。
7.UI framework:でVuetify.jsを選んで、Enter。
8.Nuxt.js modules:で、特に何も選ばずに、Enter。
9.Linting tools:で、特に何も選ばずに、Enter。
10.Testing framework:で、Jestを選んで、Enter。
11.Rendering mode:で、Universal(SSR /SSG)を選んで、Enter。
12.Deployment target:で、Server (Node.js hosting)を選んで、Enter。
13.Development tools:で、何も選ばずに、Enter。
14.Continuous integration:でNoneを選んで、Enter。
15.Version control system:で、Gitがすでにインストールされているので、Gitを選んで、Enter。ここで、再び、インストールが開始されるので、しばらく待つこと。
16.インストールが終了したら、以下のコマンドを入力し、サーバーを実行し、localhostにアクセスすする。
cd hellonuxt npm run dev
サーバーが以下のように実行したら、
localhost:3000にWebブラウザでアクセスする。ここから、クライアント側とサーバー側の両方でバンドルが始まり、ちょっと時間がかかります。終了すると、以下のように表示されます。
■参考リンク
Learn Nuxt.js by Building a Real World App
Nuxt.jsのビデオコースです。