指定したフォルダが無ければ全部作ってしまえば良い。 仕様変更が原因だったとしてもエラーにならなくなる!怒られてしまえ! 'フォルダが無ければ上階層から全部作る。 Function makeFolder(fullPath As String) As Boolean On Error GoTo err1 'fullPath =…
'ランダムファイル名を生成(FSO) Function getRndFileName() As String 'Dim FSO As Object 'Set FSO = CreateObject("Scripting.FileSystemObject") Dim FSO As FileSystemObject Set FSO = New FileSystemObject getRndFileName = FSO.GetTempName 'getR…
'オートシェイプを画像として保存 Sub saveShapeImage(myShape As Shape, outputPath As String) 'シート内にチャートオブジェクトを作成 Dim myChart As ChartObject Set myChart = ActiveSheet.ChartObjects.Add( _ Left:=0, _ Top:=0, _ Width:=myShape.W…
Sub 選択図を透過にするテスト() 'オブジェクトが選択されているか If VarType(Selection) <> vbObject Then Exit Sub Dim myShape As ShapeRange Set myShape = Selection.ShapeRange With myShape.PictureFormat .TransparentBackground = msoTrue .Transp…
Google先生のAPIは永遠に使える訳ではないので回避策としてテスト。Accessランタイム インストールバーコードはAccessのコントロールなのでAccessが必要!無ければランタイムでよい!Accessランタイムは無料!さすMicrosoft 早速ダウンロードしてインストー…
Google Chart API。パラメータ詳細は調べてません。URLエンコードすれば多分漢字が使える! ブラウザなどで以下のURLにアクセスするとQRコード画像が返される。さすGoogle先生 myURL = "https://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TEST" '…
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…
Range("E1:G1000").Merge Range("E1").UnMerge 以下、テスト用コード '確認メッセージ非表示 Application.DisplayAlerts = False Dim iRow As Long Dim sh As Worksheet Set sh = ThisWorkbook.Worksheets("Sheet1") 'セル結合1 For iRow = 1 To 1000 sh.Cel…
引数を付けるにはシングルクォーテーションでマクロと引数を囲む! ダブルクォーテーションを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…
'参照設定 Microsoft Scripting Runtime Sub 複数のテキストファイルを1行ずつ読み込む処理FSO() Dim tempFolder As String tempFolder = ThisWorkbook.Path & "\temp\" Dim f As File Dim ts As TextStream Dim fso As FileSystemObject Set fso = New File…
Sub セルの背景色をRGBで取得() 'セルの背景色を取得 Dim iColor As Long iColor = ActiveCell.Interior.Color '算出 Dim iR As Long, iG As Long, iB As Long iR = iColor Mod 256 iG = Int(iColor / 256) Mod 256 iB = Int(iColor / 256 / 256) Debug.Prin…
とりあえずセルの背景色を減色した。深く考えない! Sub カラーインデックス56色に書き換え() Dim r As Range For Each r In ThisWorkbook.ActiveSheet.UsedRange With r.Interior If .ColorIndex <> xlNone Then .ColorIndex = .ColorIndex End If End With…
ディスプレイ上のどこでも色情報を取得できるAPIのGetPixel。100x100ピクセルくらいの範囲でも激重なので注意! 読み取り範囲と基準座標はポイントとピクセルとインチとdpiの計算が必要でハードルが高いと思います。 色情報を取得できたら、シートのセルの背…
ピクセル=ポイント×96/72 インチ変換計算が必要で72で割ってます。問題は96の部分。 'ディスプレイ上におけるA1の左上の位置を取得する。ピクセル値。 x = ActiveWindow.PointsToScreenPixelsX(0) y = ActiveWindow.PointsToScreenPixelsY(0) 'A1の左上か…
Sub 画像ファイル読み込みテスト() Dim myFileName As Variant Dim myShape As Shape 'ファイル選択ダイアログ myFileName = Application.GetOpenFilename 'キャンセルやサイズ0の場合は処理終了 If myFileName = False Then Exit Sub If FileLen(myFileName…
GoogleChromeを操作したい。SeleniumBasicが必要とのこと。 事前準備は割愛。 マクロ側からページ内にアクセスする時はロード待ち処理を必ず入れる。 IEで出来てた全選択コピー貼り付けがうまくいかず、、、諦めてデータは直接取得。 Dim driver As Selenium…
Sub 全ての図の鮮明度設定 Dim shp As Word.Shape For Each shp In ThisDocument.Shapes Call setSharpness(shp, 1) '鮮明度+100% Next End Sub '鮮明度(シャープネス)設定 Sub setSharpness(shp As Word.Shape, pt As Double) Dim eff As PictureEffect W…
プリンタでスキャンしたデータを手間をかけずに一気に印刷したかったのです。Wordは画像挿入時に勝手に大きさは縮小してくれる!手間が減る! '空文書に写真等をドラッグ&ドロップで文書に追加してから実行。 Sub 図をページ毎に分けて位置も揃える() 'カー…
ワードでやりました。エクセルで出来るかは試してません。 画像を挿入して右クリック>図の書式設定>鮮明度を最大化>濃い! 最初からすごい薄いヤツには効果が薄い模様。 しこたま文書をJPGでスキャンして絶望していましたが何とかなりました。 以上
A~H列が全て空白の行を見つける処理。 iRow = 2 Do While Application.WorksheetFunction.CountA(Range("A" & iRow & ":H" & iRow)) > 0 '何か処理を入れる iRow = iRow + 1 Loop ワークシート関数CountAは空白ではないセルの個数を返す。以上。
'余白設定 With ThisWorkbook.Worksheets("Sheet1").PageSetup .LeftMargin = Application.CentimetersToPoints(1.8) .RightMargin = Application.CentimetersToPoints(1.8) .TopMargin = Application.CentimetersToPoints(1.9) .BottomMargin = Application…
セル内の文字の前後に空白があると、セル編集で中身を見てみないことには分からず気づきにくい。 そんな時は文字の前後にある空白を除去してくれるTrim便利。Trim(引数)、戻り値はString前後の空白は全て敵!何も考えずこんな感じの脳筋プログラムを作りまし…
エクセルファイルをスプレッドシートで違和感なく使いたくて色々試していたところ、スプレッドシートで保存したファイルをエクセルで開くと、行番号と列番号が太字になってしまった!番号が見切れる事も! 他の人からもらったファイルを開くと同じような事が…
非表示行を覚えておいて、復元させるだけです。 (オートフィルタを解除しなければいいだけの話では・・・?) Sub オートフィルタで絞り込んで解除して非表示状態を復元する処理() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("エクセルシート")…
Excelファイルをスプレッドシートで開くと、=Today()の結果が違う! ExcelはOSからタイムゾーンを取得、スプレッドシートはタイムゾーンを各ファイルで設定できるから。 PacificからTokyoに変更して解決!Excelファイルを更新したのでGoogleドライブに上書き…
エディタが文句ばかり言います。行が長すぎます。行継続文字を使いすぎています。 仕方ないのでコードの後半の改行は諦めました。画面外にはみ出したままです。 これでは見づらい! なんかすごい アンダーバーは24個まで。横に長すぎるコードは怒られます。…
ファイル>スプなんたらの設定 日本と(GMT+09:00) Tokyoを選択して完了! Today()-本日の日付=0にならず不思議だった