アフィリエイト広告を利用しています

2023年02月15日

VBScript VBSを利用してExcelのマクロを起動(実行)するスクリプト

Option Explicit


Dim objExcel


'Excelオブジェクトを取得
Set objExcel = CreateObject("Excel.Application")

'ExcelファイルをOPEN(※注1)
objExcel.Workbooks.Open("C:\Users\ユーザー名\Desktop\Book1.xlsm")

'Excelファイルを非表示
objExcel.Visible = False

'「Module1」のSubプロシージャ「StartMacro」を実行(※注2)
objExcel.Run "Module1.StartMacro"

'Excelを終了
objExcel.Quit




※注1
" "内は「.xlsm」ファイルの保存先を指定

※注2
" "内はExcelマクロの"モジュール名.プロシージャ名"を指定

2023年01月10日

VBA 特定のExcelファイルだけマクロを有効にする

マクロを無効としたセキュリティの警告
マクロは便利だが、様々な事が出来てしまうため、セキュリティリスクとなる場合がある。
そのため、「警告を表示してすべてのマクロを無効にする」が初期設定されている。


しかし、この設定だとその都度マクロを有効にしなければならず、
だからといって「すべてのマクロを有効にする」にしてしまうと、セキュリティリスクが高まってしまう(※)。
※ダウンロードしたものやメールで入ってきた悪意のあるファイルに対しても無条件でマクロが有効となってしまうため


では、特定のファイルだけ常にマクロを有効にしたい場合はどうすればよいか。
どうやら特定のファイルだけマクロを有効にするという設定は無い様子。


だが、Excel 2007以降では「信頼できる場所」に存在するファイルだけは常にマクロを有効にすることが可能となっている。
そのため、自分で作ったマクロなど、安全であることが分かっているファイルは「信頼できる場所」へ移動させ、セキュリティリスクを高めることなくマクロを利用する。


なお、「信頼できる場所」へ移動したファイルは「警告を表示せずに全てのマクロを無効にする」の設定になっていてもマクロの利用が可能。



「信頼できる場所」への追加設定方法

1.「ファイル」を選択
Excel画面左上の「ファイル」を選択する

2.「オプション」を選択
左メニューから「オプション」を選択する

3.「セキュリティ センター」を選択
(利用しているExcelのバージョンにより「セキュリティ センター」「トラスト センター」など表記が違う)
左メニューから「セキュリティ センター」(トラスト センター)を選択する

4.「セキュリティ センターの設定」を選択
(利用しているExcelのバージョンにより「セキュリティ センターの設定」「トラスト センターの設定」など表記が違う)
「セキュリティ センターの設定」ボタンを押下する

5.「信頼できる場所」を選択
左メニューから「信頼できる場所」を選択する

6.初期設定されているフォルダにExcelファイルを保存する。
(もしくは、「新しい場所の追加」ボタンからExcelファイルを保存しているフォルダを指定する)
Excelファイルを設定されているフォルダーに保存する

2022年12月05日

VBA Bookを上書き保存する際に複製したファイル(バックアップファイル)を自動で作成する

上書き保存したファイルと自動作成したバックアップファイル

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

 Dim path As String
 Dim name As String

 path = ThisWorkbook.path
 name = Format(Now(), "yyyymmdd") & "_" & "backup" & ThisWorkbook.name

 ThisWorkbook.SaveCopyAs Filename:=path & "\" & name

End Sub


【補足】
上書き保存の際にVBAを起動するには、「ThisWorkbook」から「BeforeSave」を選択する。
上部メニューからBeforeSaveを選択する

2022年11月01日

Eclipse JRE システム・ライブラリーがアンバインドされています

Eclipseでプロジェクトをインポートしたところ、次のエラーが発生した。


 'JRE システム・ライブラリー [〇〇]' がアンバインドされています


このエラーが発生した場合は、システム・ライブラリーを一旦除去し、再度追加することでビルドエラーが解消する可能性がある。

設定手順

1.プロジェクトを選択し右クリック

2.「プロパティ」を選択

3.「Java のビルドパス」を選択

4.「ライブラリー」タブを選択

5.「JRE システム・ライブラリ(アンバインド済み)」を「除去」

6.「ライブラリの追加」ボタンを押下

7.「JRE システム・ライブラリ」を選択し「次へ」

8.「ワークスペースのデフォルト」を選択し「完了」


上記設定後、「プロジェクト」メニューから「クリーン」を実施

2022年09月28日

VBA Excel起動時に目印となる線を現在の時間へ移動する

Move_the_mark_line_when_starting_Excel.jpg

Excel起動時に目印となる線を現在の時間へ移動するプログラム

Private Sub Workbook_Open()

 Application.ScreenUpdating = False

 Worksheets(1).Activate

 '1行目より一致する時間を選択する
 Rows(1).Find(What:=Hour(Now()), LookIn:=xlValues).Select

 '線を移動させる
 With ActiveSheet.Shapes("時間").Select
  Selection.ShapeRange.Top = ActiveCell.Top '開始行を指定
  Selection.ShapeRange.Left = ActiveCell.Left + ActiveCell.Width / 2 '横位置をセルの中央に指定
 End With

 'A1セルを選択
 Range("A1").Activate

 Application.ScreenUpdating = True

End Sub


【補足1】
目印となる線を事前に作成しておく。
また、線の名前は「時間」にする。
name_the_line_time.jpg


【補足2】
ファイルを開いた際にVBAを起動するには、「ThisWorkbook」から「Open」を選択する。
Select_Open.jpg


2022年08月23日

VBA 最終行までの空白セルを選択する

B2セルから最終行までの空白セルを選択するプログラム

Sub SelectBlankCell()

 Dim blankCell As Range

 Set blankCell = Range("B2", "B" & Cells(Rows.Count, 2).End(xlUp).Row).SpecialCells(xlCellTypeBlanks)
 blankCell.Select

 MsgBox Selection.Count '選択したセル数を確認する

End Sub

2022年07月20日

Windows アプリケーションを常に管理者として実行させる

アプリケーションを実行すると通常は管理者ではない権限で実行される。

だが、色々なアプリケーションを利用していると、まれに管理者として実行する必要があるアプリケーションに遭遇する。

このような場合、通常はアイコンを右クリックし「管理者として実行」で起動させるのだが、毎回そのアイコンを右クリックして「管理者として実行」するのは意外と手間がかかる。
また、「管理者として実行」を忘れて起動してしまった場合には、もれなくエラーが発生し、再度起動し直すこととなってしまう。

そのため、管理者として実行する必要があるアプリケーションを、常に管理者として起動するよう設定する。


実行ファイルでの設定手順

1)アプリケーションの実行ファイルを右クリックし「プロパティ」を選択する

2)「互換性」タブをクリックする

3)設定にある「管理者としてこのプログラムを実行する」にチェックを付ける
Executable_file_settings_image.jpg

4)「OK」をクリックしてウィンドウを閉じる




ショートカットでの設定手順

1)ショートカットアイコンを右クリックし「プロパティ」を選択する

2)「詳細設定」ボタンをクリックする

3)詳細プロパティにて『管理者として実行』にチェックを付ける
Shortcut_setting_image.jpg

4)「OK」をクリックしてウィンドウを閉じる

2022年06月20日

VBScript MsgBoxで日本語を使うと文字化けが発生する

Garbled_characters.jpg

MsgBoxを作成した際に文字化けが発生することがある。
このような場合は文字コードを「UTF-8」から「ANSI」へ変更する。


1)名前を付けて保存の際「文字コード」をクリック
Save_As_screen.jpg


2)プルダウンリストから「ANSI」を選択する
Select_from_pull-down_list.jpg



【関連記事】
MsgBox関数でメッセージボックスを表示する
MsgBox関数で定数を利用する
タスクスケジューラのメッセージを最前面に表示するスクリプト

2022年05月17日

JAVA 多次元配列のイメージ

2次元以上の配列のことを多次元配列と呼ぶ。
2次元配列は、既に配列(※)されているものを、さらにまとめた(配列した)もの。

※配列:データをメモリ上に隙間をあけずに並べたもの


Image_of_multidimensional_array.jpg



添字と値を確認するサンプルプログラム

public class MultidimensionalArrays{
 public static void main(String[] args){

  int[][] array = {{12,23,34}, {45,56,67}, {78,89,90}};

  for (int i = 0; i < array.length; i++){
   for (int j = 0; j < array[i].length; j++){
    System.out.println("array[" + i + "][" + j + "] = " + array[i][j]);
   }
  }

 }
}

2022年04月15日

VBScript 特定のキー押下を検知したら処理を実行するスクリプト(キー入力待ちスクリプト)

Option Explicit


Dim Excel
Dim strFunction

Dim Shift : Shift = &H10
Dim Control : Control = &H11
Dim Alt : Alt = &H12
Dim Esc : Esc = &H1B


Set Excel = CreateObject("Excel.Application")

Do While true
 If CheckKey(Shift) AND CheckKey(Control) = true Then
 '「Shift」+「Control」+「Alt」押下にて処理実行
   If CheckKey(Alt) = true Then
     ' /// ボタン押下時に処理したい内容を記述 ///

 '「Shift」+「Control」+「Esc」押下にて待ち受け処理終了
   ElseIf CheckKey(Esc) = true Then
     Exit Do
   End If
 End If
 WScript.Sleep 100
Loop

MsgBox "キー入力待ちを終了します" ,vbSystemModal + vbExclamation
Excel.Quit


'キー判定
Function CheckKey(Key)
 strFunction = "CALL(""user32.dll"", ""GetKeyState"", ""JJ"", " & key & ")"
 CheckKey = (Excel.ExecuteExcel4Macro(strFunction) And &h8000) <> 0
End Function




※注1
利用するコンピュータにExcelが入っていることが条件

※注2
待ち受け処理終了時(「Shift」+「Control」+「Esc」)には同時にタスクマネージャーも起動する

その買うを、もっとハッピーに。|ハピタス
\ハピタスの紹介キャンペーンです/
⇒登録後に行う「ハピタス検定」の答えはこちら

※ハピタスをもっと知りたいかたは他で検索してみてください

ブログ内を検索
ファン
カテゴリ
よく倒されますが、へこたれながら起き上がるSEの備忘録です

Windows(20)
SQL(17)
JAVA(4)
VBScript(14)
VBA(15)
Other(14)
書籍(1)
記事ランキング
  1. 1. 確率の収束に必要な試行回数
  2. 2. no img Windows ディスク使用率100%を改善させる
  3. 3. no img VBScript マウスポインタを自動的に移動させクリックするスクリプト
  4. 4. no img Tera Term(テラターム) 覚えておくと便利なコマンド一覧
  5. 5. VBScript タスクスケジューラのメッセージを最前面に表示するスクリプト
広告
会員登録せずに無料で読める!! 漫画読み放題のサービス

動画編集・YouTuberを始めたい方向け 無料動画編集ソフト

クラウド型レンタルサーバー クラウド型レンタルサーバー

Amazonで購入する
※Amazonのアソシエイトとして、七転八起SEの備忘録は適格販売により収入を得ています。

メンタルヘルス・マネジメント検定試験II種ラインケアコース過去問題集_2023年度版
メンタルヘルス・マネジメント検定試験II種 過去問題集〈2023年度版〉