Skip to content

Instantly share code, notes, and snippets.

View Benshi's full-sized avatar

OHSAWA Masashi Benshi

  • Toukei Computer, Co.,Ltd.
  • TOKYO, Japan
  • 01:56 (UTC +09:00)
  • X @Benshi_Orator
View GitHub Profile
@Benshi
Benshi / GraphemeLength.bas
Created August 16, 2020 16:42
異体字を含む文字列の長さを VBA で調べる
Option Explicit
'
' http://bbs.wankuma.com/ - Thread No95539
'
Public Function LenExp(ByVal text As String) As Long
Dim rawLen As Long, length As Long
rawLen = Len(text)
length = 0&
Dim i As Long, uni As Long, pair As Long
i = 0&
@Benshi
Benshi / wankuma95803.vb
Last active September 29, 2022 00:03
わんくま掲示板 No95803 : 起動済みのエクスプローラーで開かれているフォルダー内のファイルを選択状態にする
Option Explicit On
Option Strict On
Imports SHDocVw '参照設定(COM):Microsoft Internet Controls
Imports Shell32 '参照設定(COM):Microsoft Shell Controls And Automation
'Imports mshtml '参照設定(COM):Microsoft HTML Object Library
Imports System.IO
Imports System.Runtime.InteropServices
'コントロールを 2 つ貼っておく
' Button1
// >= .NET 5.0
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
public static class DirectoryInfoExtensions
{
/// <summary>
/// ディレクトリのサイズを返します。
/// </summary>
@Benshi
Benshi / TextBoxBaseExtensions.vb
Created March 23, 2021 05:26
TextChanged イベントを発生させずに TextBox の Text を書き換える
Public Module TextBoxBaseExtensions
<System.Runtime.CompilerServices.Extension>
Public Sub SetText(this As TextBoxBase, value As String)
Static forceWindowText As System.Reflection.MethodInfo = GetType(System.Windows.Forms.TextBoxBase).GetMethod("ForceWindowText", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)
forceWindowText.Invoke(this, New Object(0) {value})
End Sub
End Module
@Benshi
Benshi / SwapMouseButton.bas
Created March 23, 2021 08:19
マウスの主ボタンと副ボタンを入れ替える (VBA)
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoW" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#Else
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoW" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#End If
@Benshi
Benshi / HtmlDocumentHelper.bas
Created May 21, 2021 05:09
[VBA]ウィンドウから HTMLDocument オブジェクトを取得する
Option Explicit
Private Declare PtrSafe Function CLSIDFromString Lib "ole32" (ByVal pString As LongPtr, ByRef pCLSID As Currency) As Long
Private Declare PtrSafe Function RegisterWindowMessageW Lib "user32" (ByVal lpString As LongPtr) As Long
Private Declare PtrSafe Function SendMessageTimeoutW Lib "user32" (ByVal hWnd As LongPtr, ByVal msg As Long, ByVal wParam As LongPtr, ByRef lParam As LongPtr, ByVal fuFlags As Long, ByVal uTimeout As Long, ByRef lpdwResult As Long) As LongPtr
Private Declare PtrSafe Function ObjectFromLresult Lib "oleacc" (ByVal lResult As Long, ByRef riid As Currency, ByVal wParam As LongPtr, ppvObject As Any) As Long
Private Enum SMTO
NORMAL = 0
BLOCK = 1
ABORTIFHUNG = 2
@Benshi
Benshi / RecordingForm.vb
Last active July 15, 2021 00:13
[VB] NAudio による録音サンプル
Partial Public Class RecordingForm
Inherits System.Windows.Forms.Form
Private recordingData As System.IO.MemoryStream '録音データ
' NuGet で NAudio パッケージを組み込んでおくこと
Private WithEvents waveIn As NAudio.Wave.WaveInEvent
Private writer As System.IO.Stream
Private Sub waveIn_DataAvailable(sender As Object, e As NAudio.Wave.WaveInEventArgs) Handles waveIn.DataAvailable
writer?.Write(e.Buffer, 0, e.BytesRecorded)
@Benshi
Benshi / PDF_to_GIFF.vb
Last active October 3, 2023 12:07
PDF ファイルを TIFF 画像に変換する
'NuGet で「Microsoft.Windows.SDK.Contracts」を参照しておく
Option Strict On
Imports System.Drawing.Imaging
Imports System.IO
Imports System.Linq
Imports Windows.Data.Pdf
Public Class Form1
Private Const WICTiffEncoder As String = "0131be10-2001-4c5f-a9b0-cc88fab64ce8"
@Benshi
Benshi / FileInfoExtention.vb
Created August 12, 2021 06:22
[VB] ファイルの占有サイズを取得する
Option Strict On
Imports System.ComponentModel
Imports System.IO
Imports System.Runtime.CompilerServices
Imports System.Runtime.InteropServices
Module FileInfoExtention
''' <summary>
''' ドライブのクラスターサイズを返します。
''' </summary>
@Benshi
Benshi / PictureFromClipboard.bas
Last active January 15, 2022 00:50
[Excel]シート上の画像をフォームに表示
Option Explicit
Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As LongPtr) As Long
Private Declare PtrSafe Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As LongPtr
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long
Private Declare PtrSafe Function OleCreatePictureIndirect Lib "oleaut32" (ByRef lpPictDesc As PICTDESC_BITMAP, ByRef RefIID As Any, ByVal fPictureOwnsHandle As Long, ByRef IPic As IPicture) As Long
Private Const PtrNull As LongPtr = 0
Private Type PICTDESC_BITMAP
cbSizeofStruct As Long