オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Linux】【入門】touchコマンドで新規ファイルを作成し、シェルスクリプトを実行する

目次

この記事の目的

touchコマンドで新規ファイルを作成し、viエディタでファイルにシェルスクリプトを記述し、シェルスクリプトを実行する。
各コマンドなどの詳細は省くが、一連の操作を実際に実施することで理解を深めることが目的です。

touchコマンドについて

touchコマンドはタイムスタンプを更新するコマンドです。
存在しないファイル名を指定することで、空の新規ファイルを作成することもできます。
※この記事ではtouchコマンドの詳細は省きます。


<タイムスタンプの更新(ファイルのアクセス時刻を現在に更新)>

touch [既存ファイル名]

<空の新規ファイルを作成>

touch [新規ファイル名]

touchコマンドで空の新規ファイルを作成する

pwdコマンドで現在のディレクトリ(カレントディレクトリ)の確認後、
ls -lでカレントディレクトリのファイル・ディレクトリを確認します。
f:id:auroralights:20210203012929p:plain


次にtouch hello.shで「hello.sh」というファイルを作成します。

touch hello.sh

f:id:auroralights:20210203013226p:plain
※lsコマンドで「hello.sh」が作成されていることを確認します。

作成したファイルをviエディタで編集する

vi hello.shでhello.shを編集します。

vi hello.sh

f:id:auroralights:20210203014805p:plain
画面がエディタに切り替わったら「i」キーを押下して、「入力モード」に切り替えます。
入力モードで以下のシェルスクリプトを入力します。

#!/bin/bash
echo "hello world."

入力が終わったら、「Esc」キーを押下し、「コマンドモード」に切り替え、「:wq」を入力し、「Enter」キーを押下します。
※「:wq」は保存してエディタを閉じます。
※viエディタの基本操作は今回は省きます。

ファイルの実行権限の確認

実行権限が無ければシェルスクリプトの実行ができません。
ls -lコマンドで実行権限の確認をします。

ls -l

f:id:auroralights:20210203015630p:plain
「-rw-rw-r--」となっています。
※権限の見方の詳細は省きますが、実行権限の「x」がありません。
以下のコマンドで実行権限を付与します。

chmod +x hello.sh

ls -lで「x」の実行権限が付与されたことが分かります。
f:id:auroralights:20210203020042p:plain


シェルスクリプトの実行

以下のように「./hello.sh」もしくは「sh hello.sh」、「bash hello.sh」と実行することで、hello world.が返ってくることが分かります。

./hello.sh
sh hello.sh
bash hello.sh

f:id:auroralights:20210203020629p:plain

【Excel VBA エキスパート ベーシック】Save・SaveAsメソッド ブックを保存する(VBA入門 35)

ブックの保存について

ブックの保存には、「上書き保存」と「名前を付けて保存」の2種類があります。
「上書き保存」はすでに保存済みのブックに対して、名前を変更せずに編集内容を保存します。
「名前を付けて保存」は新規ブックを初めて保存するときや、すでに保存しているブックを別名で保存するときに使います。

上書き保存/Saveメソッド

Saveメソッドは、ブックを「上書き保存」します。


サンプルコード1
現在アクティブなブックを上書き保存します。アクティブブックがまだ一度も保存されていない場合は、カレントディレクトリに「Book1」「Book2」などの名前で保存れます。

Sub sampleSave()
    ActiveWorkbook.Save
End Sub


サンプルコード2
ただ、ブックを開いて保存するだけのコードです。
Aplication.GetOpenFilenameでオープンするブックをダイアログボックスで指定し、変数「fName」に開くブックのフルパスを代入。
fNameに対して、Openでそのブックを開きます。その後にDir(fName)でブック名だけを取り出し、Workbooks(ブック名).Saveで該当のブックを保存しています。

Sub sampleSave2()

    Dim fName As String
    fName = Application.GetOpenFilename("Excelブック,*.xlsx")
    Workbooks.Open fName

    Workbooks(Dir(fName)).Save

End Sub

名前を付けて保存/SaveAsメソッド

SaveAsメソッドは、「名前を付けて保存」します。


サンプルコード1
新しくブックを追加し、そのブックを「Test.xlsx」という名前でDドライブ直下に別名保存します。

Sub sampleSaveAs()
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:="D:\Test.xlsx"
End Sub

VBA 再入門35 Openメソッド ブックを開く

目次


※本記事の「\」は半角の「¥」のことです。

Openメソッド

ブックを開くにはWorkbooksコレクションのOpenメソッドを使用します。Openメソッドにはたくさんの引数がありますが、この記事では開くブックを指定するFilenameのみ説明いたします。


Openメソッドの書式

Workbooks.Open Filename := "ブックのフルパス"

ブックがカレントフォルダにある場合は、Filenameにブック名だけ指定することもできます。

カレントフォルダのブックを開く場合

ファイル名の指定だけで開くことができます。

Sub sampleOpen()
'ファイル名だけの指定
    Workbooks.Open Filename:="B.xlsx"
End Sub

カレントフォルダとは、現在の作業対象になっているフォルダのことです。[別名で保存]ダイアログで表示されているフォルダがカレントフォルダになります。
カレントフォルダはあくまで現在、作業対象のフォルダであってマクロのブックと同じ階層という意味ではありません。

カレントフォルダの簡単な確認方法

VBE画面のイミディエイトウィンドウで「Debug.Print CurDir」と入力してEnterを押すとカレントフォルダを表示することができます。
※イミディエイトウィンドウはVBE画面から「Ctrl」+「G」のショートカットで表示することができます。

Debug.Print CurDir

f:id:auroralights:20210126233527p:plain

カレントフォルダの注意点

カレントフォルダは意図しない操作で切り替わります。
例えば「名前を付けて保存」でカレントフォルダでないフォルダ(A)内に別のフォルダ(B)を作成した場合は、フォルダを作成したフォルダ(A)がカレントフォルダとなります。

f:id:auroralights:20210126234142p:plain
画像の場合はsubフォルダがカレントフォルダになります。

ブック名だけで指定した場合、カレントフォルダが意図しない操作で切り替わる可能性があるので、開くブックを取得するコードを記載するか、フルパスで指定する方が安全かもしれません。

カレントフォルダ以外のブックを開く場合

Filenameにブックのフルパスを指定しています。

Sub sampleOpen()
'フルパスでのブックの指定
    Workbooks.Open Filename:="C:\test\tmp\sub\C.xlsx"
End Sub

ThisWorkbook.Pathを使ってブックを指定する場合

コードを書いたブックと同フォルダにオープンしたいブックがある場合は、以下のように記述することもできます。

Sub sampleOpen3()
'--ThisWorkbook.Pathを使う方法
    Workbooks.Open Filename:=ThisWorkbook.Path & "\B.xlsx"
End Sub

ThisWorkbook.PathでVBAのコードが書かれたブックまでのパスを取得し、「& "\ブック名"」とすることで、同じフォルダの別ブックを指定しています。