ソフトウェア

Excelでカレンダー、日付が作れる(スケジュールを作るときにExcelを使うとき多いよね)

書き方

SEQUENCE(行数,列数,開始値、修了値)

引数 内容 省略
行数 連番を作成する行数 必須
列数 連番を作成する列数 省略可
開始値 連番の開始値 省略可
増減値 連番の増減値 省略可

 

日付の連番を作成する

SEQUENCE(5, 1, DATE(2023,6,1)))

6/1
6/2
6/3
6/4
6/5

※書式設定(日付)をする必要がある。

時刻の連番を作成する

SEQUENCE(3, 1, “10:00”, “1:00″)

10:00
11:00
12:00

連番を作成する

SEQUENCE(COUNTA(B:B)-1)

1 タロウ
2 ジロウ
ケンシロウ

※ケンシロウを入力確定すると、*があるセルに「3」が表示される

カレンダーを作成する

SEQUENCE(6, 7, DATE(2023, 6, 1) – WEEKDAY(DATE(2023, 6, 1))+1))
下記のA1に設定した。

※セルの書式設計をユーザ定義+dで設定

ChatGPTの利用のコツ(こうすると良い回答が得られる)

ChatGPTをうまく利用するコツをまとめました。

役割を決める ChatGPTの役割を決める。

(入力例)
・あなたは先生です。
・あなたはコーチです。

対象を決める 回答を見るターゲットを決める。

(入力例)
・初心者にもわかるように
・20代に向けた

表現を決める 回答の表現(イメージ)を決める。

(入力例)
・ビジネス向けの文章を作成して
・シェイクスピア風の物語を作成して
・標語案をいくつも作成して

出力方法を決める 出力方法を決める

(入力例)
・表にまとめて
・箇条書きで出力して
・100文字以内にまとめて(XX文字以上で書いて)
・英語で出力して(XX語で書いて)

(余談)
本当のことか聞いてみる
何か調べたときは、回答を受領後に、「本当ですか?」と聞くと、回答に対して調べる。
(合っている保証はないが、回答の信ぴょう性が高まる)

[Python] importって、どういうときに必要??

importって、なぜ、必要なんだろう!と疑問が湧いたので、調べて整理しました。
今まで深く考えずに、サンプルソースを基に作っていたのが恥ずかしい。。。

用語 内容 import宣言
組み込み関数 インストールした時から自由に使える関数
https://docs.python.org/ja/3/library/functions.html
abs()とかlist()とか
(不要)
標準モジュール
(標準ライブラリ)
システム機能へのアクセス機能を提供する (Cで書かれた) 組み込みモジュールや、日々のプログラミングで生じる多くの問題に標準的な解決策を提供するPython で書かれたモジュール
https://docs.python.org/ja/3/library/index.html
データの型とか、ファイル操作の関数
必要
外部モジュール サードパーティのモジュール
https://pypi.org/
必要
自作モジュール 自分で作成したモジュール 必要
パッケージ モジュールを集めたもの。__init__.pyが必要 必要

 

いろいろなimport宣言

宣言 用途
import A モジュールAに入っている関数を利用したい(モジュールの全体を利用したい)
(例)openpyxlモジュールに入っているload_workbook()関数を使用したい + import openpyxl
wb = openpyxl.load_workbook(‘target.xlsx’)
import A as ABC モジュールAに入っている関数を利用したい+利用時にはABC.xxx()と、別名を使って利用したい
(例)openpyxlモジュールに入っているload_workbook()関数を使用したい +openryxlを短く書きたい
import openpyxl as ox
wb = ox.load_workbook(‘target.xlsx’)
from A import aaa モジュールAに入っているaaa()関数を利用したい + パッケージを省略したい
(例)openpyxlモジュールに入っているload_workbook()関数を使用したい +openryxlを省略したい
from openpyxl import load_workbook
wb = load_workbook(‘target.xlsx’)
※コード量を省略できるが、パッケージが分かりにくいので、可読性が落ちると思う。

 

fromの利用パターン

パターン 個人的見解
from openpyxl.styles.fonts import Font
Font(color=’FF00FF’)
コード量は減るが、Font()がどのパッケージにあるのか分かりにくい
from openpyxl.styles import fonts
fonts.Font(color=’FF00FF’)
省略の効果も薄く、Font()、もどのパッケージのあるのか中途半端に分かりにくい
from openpyxl import styles
styles.fonts.Font(color=’FF00FF’)
このあたりがベストのような気もするが、省略の効果も薄い

fromの用途は、いまひとつ掴めていない。。。

パッケージをインストール(pip)したときに通知[notice]が出た

パッケージをインストールしたときに、通知[notice]が表示された

[notice] A new release of pip available: 22.3 -> 22.3.1
[notice] To update, run: python.exe -m pip install –upgrade pip

こんな時は、pip自身を更新する

>python -m pip install –upgrade pip

一応、更新されたか確認する

>pip list
Package Version
————— ——-
・・・
pip 22.3.1
・・・

問題無し。

Word文書ファイルのバージョンを一括更新

読者
読者
docファイルをdocxファイルに変換したい。
複数あるので、一括で変換する方法が無いですか?
あるよ!
Powershellを使うんだ。
管理人
管理人

PowerShellのコードイメージ
※変換元のファイルはリネームして、先頭に”_”(アンダーバーをつける)

# 事前準備
Add-Type -AssemblyName Microsoft.Office.Interop.Word
$fileType = “*doc”
$extensionDoc = “.doc”
$extensionDocx = “.docx”
$namehead = “_”

$word = New-Object -ComObject Word.Application

# ファイルの一覧取得
$files = Get-ChildItem -Path “C:\temp\sample” -Include $fileType -Recurse

Write-Host “Word変換処理開始”
Write-Host “変換元ファイルは、リネームして、ファイル名の先頭にアンダーバーをつける”

try {

# 1ファイルずつ処理
foreach($file in $files)
{
# フォルダ取得
$filePath = [System.IO.Path]::GetDirectoryName($file.FullName)
# 拡張子を含まないファイル名取得
$fileName = [System.IO.Path]::GetFileNameWithoutExtension($file)
# docファイルを保存するパスを作成
$wordPath = (Join-Path $filePath $fileName) + $extension

# Wordの処理開始
$word.Visible = $False

$doc = $word.Documents.Open($file.fullname)

$wordPath = (Join-Path $filePath $fileName) + $extensionDocx

$doc.SaveAs2($wordPath,16)

$doc.close($false)

# 変換元ファイルをリネーム
$newFileName = $namehead + $fileName + $extensionDoc

Rename-Item -Path $file -NewName $newFileName

# 終了フラグ取得
$isSucess = $?

} catch [Exception] {
Write-Host “エラーが発生しました。”
Write-Host “↓↓↓エラー詳細↓↓↓”
$error[0] | Out-String | Write-Host

} finally {
Write-Host “プログラムを終了します…”
# Excelを閉じる
if ($word -ne $null) {
$word.Quit()
}
}

Write-Host “処理完了”

レビューの種類

レビューの目的やレビューアの役職、スキルに応じて、実施するレビュー技法を選択する。
レビューの種類とレビュー技法と混同して話すことが多いので注意が必要。

NO.名称実施目的
教育レビュー関係者の知識レベルを引き上げる
マネジメントレビュープロジェクトの計画、体制やリスクをステークホルダーで共有する。
フェーズレビュー工程審査。次のフェーズに進めてよいか決断する。
ピアレビュー成果物の欠陥と改善を促す。
コードレビュープログラムコードの欠陥と改善を促す。
プロジェクト終了レビュー反省と教訓を得る
ステータス確認レビュー進捗状況、問題、リスクの確認・共有を行う。

 

Wordファイルのページ数を取得する

読者
読者
複数あるファイルのページ数を一括で取得したい
PowerShellを使えば取得できるよ
管理人
管理人

作成したWordファイルのページ数を取得したいことがありませんか?
類似システムのWordファイルの頁数を基に、設計作業の見積り根拠にしたり、
成果物の納品報告書の頁数を記入したり。。。等々

対象のファイルが数ファイルなら、1ファイルずつ開いて確認できます。
ですが、複数ファイルもあったり、フォルダがネストして格納していると、指定が面倒です。
そういう時は、次のPowerShellを使って、一括に取得してしまいましょう。

ソース(page-count.ps1)

# 結果出力(C:\temp\output.csvに結果を出力する)
$outpath = “C:\temp”
$output = $outpath + “/output.csv”

# 引数チェック
function usage {
Write-Host “Usage: “page-output.ps1 Input-dir “<directory path>”
exit 1
}

if ($args.length -eq 0) {
usage
}

$inpath= $args

# 出力ファイルを削除
if (Test-Path $output) {
Remove-Item -Path $output
}

# 指定されたパス配下のファイルを取得(サブフォルダも対象+docファイルのみ)
$target = Get-Childitem $inpath -r -include *.doc -exclude *コピー*,*.back,~* | Where-Object {-not $_.PSIsContainer}

# WSHのShellオブジェクトを生成
$shell = New-Object -Com Shell.Application

# ファイル分だけ繰り返す
$target | ForEach-Object {

# GetDetailsOfに必要なオブジェクト
$folderobj = $shell.NameSpace($_.DirectoryName)
$item = $folderobj.ParseName($_.name)

# ファイル出力
$_.DirectoryName + “\” + $_.name + “`,” + $folderobj.GetDetailsOf($item,157) | Add-Content $output
}

 

プロパティの取得(ページ数を表す番号を確認する)

もし、GetDetailsOf($item,157)でページ数が取得できない場合に下記のソースを実行して、番号(=157)を確認する

$sh = New-Object -ComObject Shell.Application
$folderobj = $sh.Namespace(‘C:\test’)
$item = $folderobj.ParseName(‘サンプル.docx’)
for($i = 0; $i -lt 300; $i++){
echo ([string]$i + ” : ” + $folderobj.GetDetailsOf($item, $i))
}

実行

PS C:\> page-count.ps1 対象ディレクトリ名

※C:\temp\output.csvに結果が出力されます。

コマンドの解説(備忘録)

ファイルの絞り込み -include

# 単一の拡張子で絞り込む場合(例:docファイルのみ取得)
PS C:\> Get-ChildItem -File -r -include *.doc

# 複数の拡張子で絞り込む場合(例:docファイル、dotファイルを取得)
PS C:\> Get-ChildItem -File -r -include *.doc,*.dot

ファイルの除外 -exclude

# 単一の拡張子で除外する場合(例:docファイルを除外)
# 例)jpg拡張子を含まないファイルを取得する
PS C:\> Get-ChildItem -File -r -exclude *.doc

# 複数の拡張子で除外する場合(例:docファイル、dotファイルを除外)
PS C:\tmp> Get-ChildItem -File -r -exclude *.doc,*.dot

指摘の受け止め方・心構え

読者
読者
指摘されると落ち込むから、レビューはしたくない

指摘の内容を分類する

レビューの指摘には、「正当なもの」と「理不尽なもの」がある。例えば、「表でまとめた方が分かりやすい」という指摘は、修正が可能で正当なものだ。一方、「どんな経験をしてきたんだ!」という批判は理不尽で、いまさら修正はできない。指摘を分類した上で、正当な指摘については真っ直ぐに受け止め、改善し、理不尽な指摘はスルーしてしまおう。

指摘の前提を確認する

指摘の大半は、指摘した人が何らかの前提(価値基準)で、発言している。その前提が理解できれば、修正・改善の方向性が見えてくるし、気持ちも楽になる。指摘している前提を確認してみよう。

ジャッジする

指摘者に対して、指摘の確認にした際に、「明確な答えがない」、「根拠が不明瞭」の場合は、必ずしも指摘を受け入れる必要はない。こういう指摘に対しては、その場を収めるため、表面的には従うという“大人の対処法”を取りつつも、スルーしてしまおう。議事録に書かなければ忘れていることも多い。

ファントムインスペクター

ファントムインスペクターって?

レビューアが事前にチェックしても見つからなかった問題が、レビューで集まってディスカッションすると、新たな重要な問題が見つかることがある。それを、ファントムインスペクターというらしい。(参考文献参照)

1人のレビューアの指摘がきっかけになって別のレビューアが気づきを得て、問題に気付くことがある。
また、司会による発言の促しもきっかけになることがある。司会は、ファシリテーターとして重要な役割も担っている。

 

参考文献

レビューのアクティビティ

 

計画準備ミーティング修正検証
インスペクション必須必須必須必須必須
チーム必須必須必須必須必須
ウォークスルー必須必須必須必須不要
ペアプログラミング必須不要必須必須不要
パスアラウンド不要必須任意任意不要
アドホック不要不要必須必須不要

 

参考文献: