コーディング

VBA

Excelシート上でクリックしたら「完了」と入力するVBAのサンプルコード ※もちろん〇でも、済でもいいですよ

Excelシート上でクリックしたら「完了」と入力するVBAのサンプルコードを紹介します。仕様以下のような真っ白なシート1枚のExcelを用意します。そしてセルをクリックするごとに、「完了」と出力します。ソースコード以下の手順でコードを記述します。まずプロジェクトエクスプローラのThisWorkbookをダブルクリックします。次に上部のプルダウンメニューから以下を選択します。左のプルダウンメニューから「Workbook」右のプルダウンメニューから「SheetSelectionChange」次に以下のコードを記述します。Option ExplicitPrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ' もし1文字以上入力されているなら If Target.Count > 0 Then ' セルに「完了」と入力 Target.Value = "完了" End If End Subこれで準備OKです。補足関数の引数の意味は以下の通りです。引数名型意味ShObject新しい選択...
VBA

Excelの全シートのセル結合をまとめて解除するVBAのサンプルコード

Excelの全シートのセル結合をまとめて解除するVBAのサンプルコードを紹介します。仕様以下のようなサンプル実行を想定します。シートが複数あり、それぞれのシートでセル結合されたセルがあります。そして、マクロの実行で全てのシートのセル結合を解除します。例えば以下のようなシートが用意されたブックのイメージです。シート「Sheet1」シート「Sheet2」シート「Sheet3」コピーの手間があったので全部同じような結合にしてしまいました。実用的なイメージとはかけ離れていますが、どのような結合でも問題ありません。ソースコードUnMerge関数を使用することによって、セル結合が解除できます。Worksheet(XXXXXX).UsedRange.UnMergeシートの数だけループし、UnMerge関数で各シートのセル結合を解除します。Option ExplicitSub unMergeAllSheets() Dim SheetNo As Long For SheetNo = 1 To Worksheets.Count 'セル結合解除 Worksheets(SheetNo).UsedRange.U...
VBA

VBAからExcel関数(ワークシート関数)を呼び出すサンプルコード

VBAからExcel関数(ワークシート関数)を呼び出すサンプルコードを紹介します。仕様以下の仕様に沿って、VBAからExcel関数の呼び出しを説明します。VBAのコードからExcelのAverage、Min、Max関数を呼び出します。Excelのvlookup関数を呼び出して、表2の会員情報を検索して表1出力します。ソースコードVBAからExcel関数を実行するには以下の記述を入力します。Application.WorksheetFunction.ワークシート関数よって、上記の仕様を満たすには以下のコードを記述します。Option ExplicitSub calc() '平均年齢 Range("C8").Value = Application.WorksheetFunction.Average(Range("C3:C6")) '最年長 Range("C9").Value = Application.WorksheetFunction.Max(Range("C3:C6")) '最年少 Range("C10").Value = Application.WorksheetFunction.M...
VBA

Excelのセルの幅を一括で自動調整するVBAのサンプルコード(VBAのAutoFitの使用例)

Excelのセルの幅を一括で自動調整するVBAのサンプルコードを紹介します。仕様Excelを使っていると、以下のようなことがあります文字切れで文章が見えなくなる無駄にセルの幅が広くて見た目が悪い。例えば以下のキャプチャはIDや年齢の幅が広すぎますし、名前の幅は狭すぎて何が書いてあるかわかりません。今回のVBAのサンプルコードは、この幅を自動調整するサンプルコードです。手動で直す場合ちなみに手動で修正する場合は、以下の操作を実施します。対象のセルの幅を広げます。書式メニューから「列の幅の自動調整(I)」を選択します。※セルの境目でダブルクリックするともっと早いですね。すると、以下のように幅が調整されます。VBAもこれをプログラムにするだけですね。ソースコードソースコードは以下のとおりです。AutoFitを使用するのがポイントになります。そして実行していることは基本的に手作業でしていたことを、自動化しただけであるというのもポイントです。Option ExplicitSub AutoFitColumns() '最右端の列番号の取得(表が2行目から始まっているため、2行で評価していることに注意...
PowerShell

PowerShellで数値から変換して、ASCII文字の127文字全てを出力するサンプルコード

PowerShellで数値から変換して、ASCII文字の127文字全てを出力するサンプルコードを紹介します。ASCIIコードとは1963年に制定された、アメリカ合衆国における情報通信用の文字コードです。アルファベットや数字、記号などを文字コード化したもので、情報をやりとりするために使用されます。英語圏を想定した、以下の4つの文字で構成されています。ASCIIコードで表現される文字《英語で使われるアルファベット》の大文字と小文字英文でよく使われる約物など0から9までの数字(アラビア数字)制御文字そして他のUNICODEやSJISはASCIIコードを拡張した文字コードです(ASCIIベース)。なので、ASCIIと重複する数値をUNICODEに変換してもASCIIと同じ符号化ができます。ここが今回のソースコードのポイントになります。ソースコード以下のコマンドとps1ファイルを準備しておきます。コマンドpowershell -ExecutionPolicy RemoteSigned -File "outASCII.ps1"outASCII.ps1$str = ""for($i=0; $i -l...
PowerShell

PowerShellのScriptファイル(*.ps1)をダブルクリックで実行できるようにするショートカットの作成手順

PowerShellのScriptファイル(*.ps1)をダブルクリックで実行できるようにするショートカットの作成手順を備忘録として残します。解決内容以下の問題点を解決します。問題点PowerShellのScriptファイル(*.ps1)を実行するには、コマンドラインを開いて以下のようなコマンドを実行します。このままだとスキルの低い人にPowerShell Scriptを配布した後、実行方法を説明するのが少々面倒です。(サラリーマン社会は技術以外にも部課長、お客様など技術者層以外にもファイルを配布することがよくあるのです)解決結果そのため以下のようにショートカットファイルをダブルクリックするだけでPowerShellファイルを実行してくれるようにします。手順以下の手順を実施します。まずPowerShellのScriptファイルを用意します。記述内容は仮に「PowerShellファイルを実行しました」のメッセージを表示するスクリプトにしています。exec.ps1(PowerShellファイル)Write-Host "PowerShellファイルを実行しました"pause次にショートカット...
PowerShell

PowerShellでJSONファイルを読み込むサンプルコード(レコードのようなJSONファイル編)

PowerShellで同じ定義が続くレコードのようなJSONファイルを読み込むサンプルコードを紹介します。ファイル構成jsonファイルとpowershellファイル(ps1)は同じディレクトリに格納しています。ソースコードコマンドを叩くと、JSONファイルを読み込んで全部出力します。今回は2パターンのforeach文でidとnameを出力します。コマンドpowershell -ExecutionPolicy RemoteSigned -File "ReadJson_multi.ps1"ReadJson_multi.ps1# JSONファイルの読み込み$jsonContent = Get-Content -Path "json_multi.json" -Raw$jsonObj = ConvertFrom-Json $jsonContent# 繰り返し処理 1 $jsonObj | ForEach-Object { Write-Host $_.id }# 繰り返し処理 2foreach($person in $jsonObj){ Write-Host $person.name}json_m...
PowerShell

PowerShellでJSONファイルを読み込むサンプルコード(設定ファイルのようなJSONファイル編)

PowerShellでJSONファイルの設定ファイルを読み込むサンプルコードを紹介します。同じ列定義が続くレコードのようなJSONファイルの読み込みは別記事で紹介します。ファイル構成jsonファイルとpowershellファイル(ps1)は同じディレクトリに格納しています。ソースコードコマンドを叩くと、JSONファイルのいくつかのプロパティを読み込みます。コマンドpowershell -ExecutionPolicy RemoteSigned -File "ReadJson.ps1"ReadJson.ps1# JSONファイルの読み込み$jsonContent = Get-Content -Path "json1.json" -Raw$jsonObj = ConvertFrom-Json $jsonContent# プロパティの確認# 文字列Write-Host $jsonObj.property1# 数値Write-Host $jsonObj.property2# 階層構造Write-Host $jsonObj.property3.namejson1.json(JSONファイル){ ...
PowerShell

PowerShellでJSONファイルへ書き込むサンプルコード

PowerShellでJSONファイルへ書き込むサンプルコードを紹介します。ファイル構成jsonファイルとpowershellファイル(ps1)は同じディレクトリに格納しています。ソースコードコマンドを叩くと、JSONファイルを読み込み、ageプロパティとpets.typeプロパティを変更し書き込みます。また、プロパティ"language" : "japanese"を新規に追加します。コマンドpowershell -ExecutionPolicy RemoteSigned -File "WriteJson.ps1"WriteJson.ps1# JSONファイルの読み込み$jsonContent = Get-Content -Path "json1.json" -Raw$jsonObj = ConvertFrom-Json $jsonContent# プロパティの変更# 年齢$jsonObj.age = 99# ペットの種類$jsonObj.pets.type = "bird"# プロパティの追加# 母語$jsonObj | Add-Member -Name "language" -Va...
VBA

VBAによるswap関数(2つの変数の値を交換)のサンプルコード

VBAによるswap関数(2つの変数の値を交換)のサンプルコードを紹介します。SWAP関数とはSWAP関数とは「二つの変数の値を入れ替える」基本的な関数です。ソートアルゴリズムを学ぶ際に、SWAP関数は必ず必要な知識になります。ここではVBAで、2ステップに分けてSWAP関数を作成していきます。二つの変数の値を入れ替えるコードを作成する上記のコードをSWAP関数化する二つの変数の値の入れ替えまずはシンプルに2つの変数の値を入れ替えます。関数化は後で実施します。ソースコードThisWorkbookの下にソースコードを記述しました。swap1.xlsmOption ExplicitSub main() Dim dataA As String Dim dataB As String Dim temp As String dataA = "AAAA" dataB = "BBBB" MsgBox "実行前:" & Chr(13) + Chr(10) & dataA & "," & dataB temp = dataA dataA = dataB dataB = temp MsgBox "実行後:...