つらつら Excel VBA

私の備忘録です。

メモ

選択解除するショートカット

エクスプローラで選択されているファイルの選択解除するショートカット。Ctrl+Space以上。

Excelのショートカットキー

※半角モード 行を選択 [Shift] + [スペース] 列を選択 [Ctrl] + [スペース] 全選択 [Ctrl] + [Shift] + [スペース]削除 [Ctrl] + [-] 挿入 [Ctrl] + [+]以上。

入力候補の表示(Ctrl+Space)

VBEでコーディングする際、入力候補はドットやCtrl+Spaceを押すと出てくる。以上。

商と余り

ド忘れしてたのでメモ。¥ 商 Mod 余り Debug.Print 10 / 3 '3.33... Debug.Print 10 ¥ 3 '3 Debug.Print 10 Mod 3 '1 Debug.Print Int(10 / 3) '3 Debug.Print Fix(10 / 3) '3 Debug.Print Int(-10 / 3) '-4 Debug.Print Fix(-10 / 3) '-3 以上。

CSSよく分からん

困っているわけではないのです。 こんなテーブルを用意。 タイトル1 タイトル2 タイトル3 a b c d e f g h i j k l m n o p q r s t u v w x y z 自分のはてぶ環境はWindows10のGoogleChrome。 tableを行単位で塗り潰したい。とりま交互に塗り潰してみた。 <tr style="background-color:#66CCFF;"></tr>…

演算誤差

VBAに限らずコンピュータであれば演算誤差は起こる。 演算誤差の有無は、仕様を決めた人と数式とかプログラム書く人に委ねられる。 最近は誤差のこと忘れてた(笑)同じ動作のプログラムを2つ用意。違うのは変数だけ。 Sub 演算誤差の確認() Dim d As Double…

セル結合の確認

If Range("A1").MergeCells Then Debug.Print "結合されています" End If With Range("A2") Debug.Print .MergeArea.Address '結合範囲 Debug.Print .MergeArea.Count 'セル数 Debug.Print .MergeArea.Rows.Count '行数 Debug.Print .MergeArea.Columns.Coun…

Application.OnTimeで繰り返し処理

引数を付けるにはシングルクォーテーションでマクロと引数を囲む! ダブルクォーテーションを2連続で書くのはエスケープ処理という回避方法。ダブルクォ(略)を文字として認識させたい時などに使います。他言語では¥マーク等が使われます。 '抜粋 Procedur…

コマンド実行結果を受け取る

PowerShellも同じやり方。渡すテキスト変えるだけ。 コマンドにオプション付けたり、Splitなどを使って結果を取捨選択してください。 Sub コマンドプロンプト() Dim WSH, wshExec, sCmd As String, sResult As String Set WSH = CreateObject("WScript.Shell…

セルの幅と高さサイズ指定

Sub セルの幅と高さサイズ指定() With ActiveSheet '自動調整確認用テスト文字 '.Range("A1:G10").Value = "aaaaaaaa" 'サイズ一括指定 .Cells.RowHeight = 30 .Cells.ColumnWidth = 5 '基準値に戻す .Rows("2").UseStandardHeight = True .Columns("A").Use…

ディスプレイ上の画像位置を取得する(DPI値の注意)

ピクセル=ポイント×96/72 インチ変換計算が必要で72で割ってます。問題は96の部分。 'ディスプレイ上におけるA1の左上の位置を取得する。ピクセル値。 x = ActiveWindow.PointsToScreenPixelsX(0) y = ActiveWindow.PointsToScreenPixelsY(0) 'A1の左上か…

Trimとデータ型について

セル内の文字の前後に空白があると、セル編集で中身を見てみないことには分からず気づきにくい。 そんな時は文字の前後にある空白を除去してくれるTrim便利。Trim(引数)、戻り値はString前後の空白は全て敵!何も考えずこんな感じの脳筋プログラムを作りまし…

長いコードと行継続文字の使い過ぎ

エディタが文句ばかり言います。行が長すぎます。行継続文字を使いすぎています。 仕方ないのでコードの後半の改行は諦めました。画面外にはみ出したままです。 これでは見づらい! なんかすごい アンダーバーは24個まで。横に長すぎるコードは怒られます。…

スプレッドシートの日付計算がおかしい

ファイル>スプなんたらの設定 日本と(GMT+09:00) Tokyoを選択して完了! Today()-本日の日付=0にならず不思議だった

PDFからコピペ2

コピペしたら文字化け!Wordで開いても文字化け! 1.Googleドライブにログイン 2.PDFをアップロード 3.アプリGoogleドキュメントで開く 4.\(^o^)/ 5.変な空白あるやん!置換置換! 以上

PDFからコピペ1

WordにコピペしてExcelにコピペする! またはExcelかWordでPDFを開く! 結構Wordで開ける。それでもダメなら他の方法を探るべし 以上

はてなブログにソースコードを載せる

はてな記法を最初に選んでブログを書くとソースコードが見やすくなる!! Debug.Print "こんにちは!!!" >|vb| ソースコード ||<はてな記法を選択して上記のようにソースコードを囲みます。囲み部分は半角です。昔の記事は一括で・・・なんてことは…

Excelのショートカットキー

滅茶苦茶よく使う [Ctrl] + [D] 真上のセルを現在セルにコピペ

処理の停止

VBA実行中に処理を停止したい時の案。 停止検知時にメッセージボックスでも出せば、再開or終了とかもできそう。UserForm作ってコマンドボタン2個、ラベル1個配置して以下を張り付け。 Private Sub CommandButton1_Click() Dim i As Long bStop = False 'フラ…

処理の停止

VBA実行中に処理を停止したい時の案。 停止検知時にメッセージボックスでも出せば、再開or終了とかもできそう。 UserForm作ってコマンドボタン2個、ラベル1個配置して以下を張り付け。 '------------------------------------------------------------------…

ハイパーリンクのURLを取得

strURL = r.Hyperlinks(1).Address

ステータスバーにメッセージ表示

Application.StatusBar = "表示文字" Application.StatusBar = False 'Excelに返す

ハイパーリンク一括削除

ActiveSheet.Hyperlinks.Delete

InstrRev関数

後ろから探して、前から数える

スプレッドシートの日付計算

今日の日付が2018/8/24、 A1に日付 2018/8/20、 =TODAY()-A1の計算結果 Excel 4 スプレッドシート 3 なんやコレ...

日付のスプレッドシート互換

Excelで自動認識された日付はGoogleスプレッドシートで数値表示されてしまう。ユーザー書式で日付を指定すると、スプレッドシートでも日付と認識してくれる。

Interior.ColorとInterior.ColorIndex

Interior.Colorでは背景色未設定が判別できないので、以下のようにする。 If Interior.ColorIndex=xlNone Then 最悪、16777215で比較するとできる

偶数、奇数行だけ消したい

=mod(row(),2) 後はオートフィルタでOK

漢字の並べ替えに注意

50音順の並べ替えが何故か期待通りに動かない!フリガナを疑いましょう。 自分でセルに入力した文字、コピペした文字、フリガナの有無で並べ替え結果が変わります!! フリガナ嫌い!!!!

Interior.ColorIndex

背景色をコピーする時、結果が異なるのは仕様なのだろうか r.Interior.ColorIndex = rr.Interior.ColorIndex r.Interior.Color = rr.Interior.Color 私は下を使う事にする