Archive for the ‘Office’ Category

private public スコープ 有効範囲

木曜日, 11月 19th, 2020

public:広)同一プロジェクト内>他のモジュールからも呼び出し可能
汎用的なものはpublicで作成しモジュールをインポートして機能を追加する
※省略時はpublic

private:狭)同一モジュール内>他のモジュールからは呼び出し不可能なので
左ツリーの標準モジュールにぶらさがっている各モジュールの同一内に記述

シートやブックのようなオブジェクトモジュール内のプロシージャや変数はprivate扱い

プロシージャとは
VBAの命令文のひとまとまり
・subプロシージャ
・functoinプロシージャ
・propertyプロシージャ

propertyプロシージャとは
ユーザーが作成した独自のプロパティに対して値の設定や取得を行うプロシージャ

Excel 今日の日付へ ジャンプ セル移動

月曜日, 11月 9th, 2020

●縦方向(A列)
=HYPERLINK(“#A”&MATCH(TODAY(),A:A,0),”今日”)

●横方向(1行)
=HYPERLINK(“#”&ADDRESS(1,MATCH(TODAY(),1:1,0)),”今日”)

matchでtodayと一致する行列番号を取得し、セル位置へジャンプするhyperlinkを設定

【課題】セル表示が「今日」にならないで0表示。何で?
一致なしだとN/A、計算結果の今日だと0戻り、matchの戻り値が表示されてるよう
計算結果ではない一致データで一度一致させると正常に今日表示となる
計算式を再度Enterすると0戻りしてしまう
【解決】循環参照になってた
1行目を丸ごとmatchの検索範囲に指定しているのに上記式を1行目に貼ってた
→1行目以外に貼るか、検索範囲をざっくり1行指定でなくてきっちり指定する
【エラーパターン】
気づくとN/Aになってた
→検索値(今日)がなかった

VBA VBE コメントアウト ショートカット

土曜日, 10月 31st, 2020

●右クリメニューにコメントアウト追加
ツールバー右クリ>ユーザー設定
ツールバータブ>ショートカットメニューチェック
→ショートカットツールバーが表示
ショートカットメニュー>コードウィンドウ>コードエディタウィンドウ
→挿入先を表示しておく
コマンドタブ>分類:編集>コマンド:コメントブロック>コードエディタウィンドウへD&D

●アクセスキーを設定
ツールバー右クリ>ユーザー設定
コマンドタブ>分類:編集>コマンド:コメントブロック>ツールバーへD&D
選択したボタンの編集>&z>イメージとテキストを表示
→Alt+zでコメントブロック

VBA マクロ ショートカットキー 割り当て A~Z

土曜日, 10月 31st, 2020

●基本A~Zのみ(既存Excelショートカット)

●自分マクロショートカット
Application.MacroOptions Macro:=”a全シートA1セル選択”, ShortcutKey:=”A”
Application.MacroOptions Macro:=”h参考リンク”, ShortcutKey:=”C”
Application.MacroOptions Macro:=”fフォント”, ShortcutKey:=”F”
Application.MacroOptions Macro:=”h参考リンク”, ShortcutKey:=”H”
Application.MacroOptions Macro:=”k罫線田”, ShortcutKey:=”K”
Application.MacroOptions Macro:=”n新しいウィンドウで開く”, ShortcutKey:=”N”
Application.MacroOptions Macro:=”wウィンドウ枠の固定”, ShortcutKey:=”W”
Application.MacroOptions Macro:=”pハイパーリンクのスタイル設定”, ShortcutKey:=”P”
Application.MacroOptions Macro:=”r折り返し”, ShortcutKey:=”R”
Application.MacroOptions Macro:=”t書式ペースト”, ShortcutKey:=”T”
Application.MacroOptions Macro:=”v値ペースト”, ShortcutKey:=”V”

●既存割り当てショートカットの確認方法

●コードならでShift、Ctrl、A~Z以外も割り当て可能

スペースキーには割り当て不可?
既にWindowsで割り当てられているから?

●Windowsショートカットキー一覧

●ショートカット意味由来

outlookにgmail設定

土曜日, 2月 22nd, 2020

●outlookにgmailの設定ができない
→gmailが要求するセキュリティレベルとoutlookの仕様が一致していないことが原因
・gmail側の設定変更が必要
□a).2段階認証を有効にしてアプリパスワードを利用する(セキュリティレベル高)
□b).セキュリティ>安全性の低いアプリのアクセス>アクセスを有効にする

●受信方法
・IMAP方式:メールデータをサーバー上に置く(基本)
{スマホはローカルデータ量が増えないからコッチがいいのかな?}
・POP方式:受信する都度メールをダウンロード
{PCはレスポンスやバックアップ面でコッチがいいのかな?}
→ダウンロードしてしまうと他の端末で閲覧できなくなる
{ダメじゃん、マルチ端末での利用はIMAPってコト?}

●古いoutlookメールをgmailに移行できる


Googleアカウント>左4)セキュリティ>2段階認証プロセス>使ってみる>パスワード入力>今すぐ送信>スマホのメールではい>バックアップ方法を登録:送信>携帯SMS:G-xxxxxx確認>PCでG-抜き数字6桁入力>次へ>2段階認証プロセスを有効にしますか?:有効にする

{2段階認証がオンにあったらTunderbirdから接続できなくなった象}

□バックアップ設定
→パスワード忘れ、スマホ紛失時にアカウント復元に必要

□再設定用情報を設定
→パスワード忘れ、第三者不正利用の場合アカウント復元に必要


Googleアカウント>右上)アカウントを管理>左4)セキュリティ>アプリ パスワード >パスワード入力>メール、Windowsパソコン>生成>Windowsパソコンのアプリパスワード16文字を控える>完了
そのパスワードでoutlookメール設定したらできた


Thunderbirdのパスワード再設定方法がわからん

右上)メニュー(三アイコン)>オプション>オプション
左6)セキュリティ>上4)パスワード>保存されているパスワード>選択して削除
3つ削除した
再起動後にgoogle認証パスワード入力
アプリ パスワードは必要なかった

 

ウィンドウ 位置 サイズ 状態 Application.Top Left Width Height WidowsState

土曜日, 2月 15th, 2020
Sub ウィンドウ位置サイズ状態()
  
    With Application
    
        MsgBox "Top:" & .Top & Chr(13) & _
            " Left:" & .Left & Chr(13) & _
            " Width:" & .Width & Chr(13) & _
            " Height:" & .Height & Chr(13) & _
            " WindowState:" & .WindowState
    
    End With

End Sub

参考:ウィンドウ位置

 

参考:ウィンドウサイズ

 

WindowState:ウィンドウの状態

※最大化/最小化の状態で位置サイズを設定を設定するとエラーになるので、xlNormalを設定してから位置サイズを変更

定数     値     内容
xlMaximized     -4137     最大化
xlMinimized     -4140     最小化
xlNormal     -4143     標準

参考:WindowState

 

 

 

msgbox 改行 Chr(13) メッセージボックス

土曜日, 2月 15th, 2020

Chr(13)
vbCrLf
(キャリッジ リターンとかライン フィード)

MsgBox “1行目 & Chr(13) & 2行目”

入力規則 Alt>D>L

金曜日, 2月 14th, 2020

プロパティ一覧

■指定した間の整数のみ入力可能にする
■日付の入力規則を設定する
■リストの値のみ入力可能にする
■IMEモードを設定する
■セルの入力規則を変更する

設定ダイアログ対比で丁寧な解説

入力規則の設定を調べる

入力設定の有無を判定

Sub 自動記録_入力規則IMEオフ_コメント()
    
    With Selection.Validation
        .Delete '入力規則を削除
        '入力規則の追加
        .Add Type:=xlValidateInputOnly, _
        AlertStyle:=xlValidAlertStop, _
        Operator:=xlBetween
        'Type入力規則の種類
        'AlertStyle入力規則でのエラーのスタイル
        'Operator入力規則の演算子
        .IgnoreBlank = True 'True空白値の入力許可
        .InCellDropdown = True  'Trueドロップダウンリスト表示
        .InputTitle = ""    '入力規則ダイアログボックスのタイトル
        .ErrorTitle = ""    '入力規則で発生するエラーダイアログボックスのタイトル
        .InputMessage = ""  '入力規則でのメッセージ
        .ErrorMessage = ""  'エラー時のメッセージ
        .IMEMode = xlIMEModeOff '日本語入力をIMEオフ(英語モード)に設定
        .ShowInput = True   'Trueセルを選択するとメッセージ表示
        .ShowError = True   'Tureなら無効なデータ入力時にエラーメッセージ表示
    End With
    
End Sub

 

ファイル名 変更 リネーム

土曜日, 2月 8th, 2020
Sub Sample()
    Name "C:\Work\Sample.txt" As "C:\Work\Test.txt"
End Sub

シート コピー 名前

土曜日, 2月 8th, 2020
Dim コピー元シート名
    コピー元シート名 = "_"

    'シートAを先頭にコピー
    Worksheets(コピー元シート名).Copy before:=Worksheets(1)
    
    'シートAを末尾にコピー
    Worksheets(コピー元シート名).Copy after:=Worksheets(Worksheets.Count)

    'シートに名前を付ける
    ActiveSheet.Name = Format(Date, "mmdd") & "_" & Format(Time, "hhmm")