Skip to content

Instantly share code, notes, and snippets.

Avatar

KotorinChunChun KotorinChunChun

View GitHub Profile
@KotorinChunChun
KotorinChunChun / mod_VBA100_MagicBall002.bas
Last active Sep 20, 2021
VBA100本ノック 魔球編2 閉領域の塗り潰し
View mod_VBA100_MagicBall002.bas
Rem VBA100本ノック 魔球編2 閉領域の塗り潰し
Option Explicit
Private Const NN未探索 = 0 '初期値。最終的に色を塗る対象となる
Private Const NN探索対象 = 1 '四方探索が予約された状態(最終的に0件となる)
Private Const NN探索済 = 2 '四方探索を終えた状態(領域外から繋がっている島ではない箇所)
Sub Main()
Dim rng As Range
Set rng = Worksheets("問").UsedRange
@KotorinChunChun
KotorinChunChun / mod_VBA100_MagicBall001.bas
Created Sep 19, 2021
VBA100本ノック 魔球編1 組み合わせ問題
View mod_VBA100_MagicBall001.bas
Option Explicit
Rem 魔球編1 組み合わせ問題
Sub MagicBall001()
Dim srcArr: srcArr = CreateRandArray(5, 20, 40)
Dim retArr
retArr = func(srcArr, 100)
If IsEmpty(retArr) Then MsgBox Join(srcArr, ",") & "で100を超える組み合わせはありません": Exit Sub
Debug.Print Join(srcArr, ",") & " - " & Join(retArr, " + ") & " = " & Sum(retArr)
End Sub
@KotorinChunChun
KotorinChunChun / FormExcelColumnSwitcher.frm.vba
Last active Sep 19, 2021
エクセル表示列切り替えツール
View FormExcelColumnSwitcher.frm.vba
Rem --------------------------------------------------------------------------------
Rem
Rem @module FormExcelColumnSwitcher
Rem
Rem @description エクセル表示列切り替えツール
Rem
Rem @update 2021/09/19
Rem
Rem @author @KotorinChunChun (GitHub / Twitter)
Rem
@KotorinChunChun
KotorinChunChun / vba_dictionary_miss.bas.vba
Last active Mar 4, 2021
VBAのDictionaryの要素の配列には値を代入できない教訓
View vba_dictionary_miss.bas.vba
'二次元配列の列をDictionaryへ、行をArray要素へ変換
Function ToDictionaryArrayByArray2D_NG(data) As Dictionary
Dim dic As New Dictionary
Dim i As Long, j As Long
For j = 1 To UBound(data, 2)
Dim arr
ReDim arr(1 To UBound(data, 1) - 1)
dic(data(1, j)) = arr
Next
@KotorinChunChun
KotorinChunChun / kncok.vba
Last active Dec 7, 2020
VBA100本ノック41本目
View kncok.vba
Option Explicit
Sub knock41()
Dim res As Dictionary: Set res = Quiz四則演算いっぱい出題(99, 20, 3)
Dim msg As Dictionary: Set msg = New Dictionary
Dim key, 正解数
For Each key In res.Keys
正解数 = 正解数 + IIf(res.Item(key), 1, 0)
msg.Add Join(Array( _
IIf(res.Item(key), "○", "×"), _
@KotorinChunChun
KotorinChunChun / WScript.cls.vba
Created Dec 3, 2020
VBEでVBSを編集するための偽WScriptクラス
View WScript.cls.vba
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "WScript"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Rem
View vba_knock014.bas.vba
Option Explicit
'VBA100本ノック14本目
'出題を勘違いして答えた人の末路
Sub vba_knock14()
Dim wb As Workbook: Set wb = ActiveWorkbook
Dim ws As Worksheet
Dim moveWss As Variant: ReDim moveWss(0 To 0) '0はダミー
'削除すべきシートを特定
@KotorinChunChun
KotorinChunChun / vba_knock013.bas.vba
Created Nov 1, 2020
VBA100本ノック13本目
View vba_knock013.bas.vba
Option Explicit
'#VBA100本ノック 13本目
'選択セル(Selection:複数範囲あり)の文字列に「注意」という文字があった場合は、
'その「注意」の文字だけを"赤の太字"に設定してください。
'セル以外(図形等)が選択されている場合は何もせずに正常終了するようにしてください。
'※一部仕様を無視
' 図形選択前に選択していたセルを使ってでも絶対に処理を実行する
Sub vba_knock013()
@KotorinChunChun
KotorinChunChun / kccExtScience.bas.vba
Created Oct 31, 2020
選択中のセルの化学式の書式を整えるVBAマクロ
View kccExtScience.bas.vba
Rem 選択中のセルの化学式の書式を整えるVBAマクロ
Sub 選択範囲の化学式の書式を整える()
Dim MyRange As Range
Dim i As Integer
Dim s2 As String, s3 As String
Dim PHflg As Boolean
For Each MyRange In Selection
For i = 2 To Len(MyRange.Text)
s2 = Mid(MyRange.Text, i - 1, 2)
@KotorinChunChun
KotorinChunChun / BinaryFileIO.cls.vba
Created Sep 8, 2020
バイナリファイル読み書きラッパークラス
View BinaryFileIO.cls.vba
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "BinaryFileIO"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Rem --------------------------------------------------------------------------------