¢ªOffice´ØÏ¢¥á¥â

¢ªExcel´ØÏ¢

¢ªC¡ô¤Ë¤è¤ëExcelÀ©¸æ

¢ªVisual Basic(.NET°ÊÁ°)

#contents


* ¥µ¥Ö¥È¥Ô¥Ã¥¯ [#zd8f2c00]
-Excel¤ÎVBA¤Ç¿Þ·Á¡¿¥·¥§¥¤¥×¤Î½èÍý


*°ìÈÌ [#bbc20b28]
-VarType¤Ç8204¤Ê¤É¤¬Ê֤äƤ¯¤ë¤È¤­
-- ÇÛÎó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ÇÛÎó(8192)+·¿ÈÖ¹æ¤ÎÃͤ¬ÊÖ¤ê¤Þ¤¹¡£8204¤Ê¤éVariant(12)¤ÎÇÛÎó
--http://www.openreference.org/articles/view/460

-[[VBA¤Î¡Ö¥½¡¼¥¹¥³¡¼¥É¤ò¥í¥Ã¥¯¡×¤Ç¤Ï¥½¡¼¥¹¥³¡¼¥É¤ò¥í¥Ã¥¯¤Ç¤­¤Ê¤¤ - Qiita>https://qiita.com/kn1cht/items/e97f00fdcf2e7d456cfa]] 2022.7

-[[VBA100ËܥΥ寡§¥Þ¥¯¥íVBA¤ÎÆ÷±¡Ã¥¨¥¯¥»¥ë¤Î¿À¿ñ>https://excel-ubara.com/vba100/]] 2021.3

-[[¥¨¥¯¥»¥ë¥¢¥É¥¤¥ó¤È¤Ï>http://hp.vector.co.jp/authors/VA029807/jim_carry-xla-exp.htm]]

-[[¥¨¥¯¥»¥ë£Ö£Â£Á¡¦¥Þ¥¯¥íÊÙ¶¯»²¹Í¥µ¥¤¥È¤Þ¤È¤á>http://matome.naver.jp/odai/2132773983649074301]]

-[[¥³¥ó¥È¥í¡¼¥ë¤Î¸íÁàºî¤Ç¥Þ¥¯¥í¤¬ºîÀ®¤µ¤ì¤ë>http://pc.nikkeibp.co.jp/article/column/20091109/1020285/?P=1]]

-[[VB & VBA¥×¥í¥°¥é¥ß¥ó¥°>http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html]]

-[[¤¹¤°¤ËÌòΩ¤ÄVBA¥Þ¥¯¥í½¸>http://www.happy500z.com/]]
--[[°õºþ¡Ê´ðËÜ·¿¡Ë>http://www.geocities.jp/happy_ngi/YNxv211.html]]

-[[ExcelRelaxTools Addin>http://software.opensquare.net/relaxtools/]] 2014.1.29
--5ǯ´Ö(2009ǯ¡Á)¤Ë¤ï¤¿¤Ã¤ÆºîÀ®¤·¤¿¥Þ¥¯¥í¤òÈÆÍÑŪ¡¢ÂηÏŪ¤Ë¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¹¡£


*Tips [#z68b5d4d]
** źÉÕ¥Õ¥¡¥¤¥ë¤ò¤Ä¤±¤Æ¥á¡¼¥ë [#p7c0a085]
-[[EXCEL VBA¤Ç¥á¡¼¥ë°ì³çÇÛ¿®¡ªÅºÉÕ¥Õ¥¡¥¤¥ë¤âÉÕ¤±¤é¤ì¤ë¤è¡¡¤½¤Î£² - ¤¢¤­¤é¤Á¤ó¤Îµ»½Ñ¥á¥â>https://www.akiratin.com/excel-vba%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E4%B8%80%E6%8B%AC%E9%85%8D%E4%BF%A1%EF%BC%81%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%82%E4%BB%98%E3%81%91%E3%82%89%E3%82%8C%E3%82%8B/]] 2020

** ²èÌ̤ò¥­¥ã¥×¥Á¥ã¤¹¤ë [#d6d9263d]
-[[Excel VBA ¤ò³Ø¤Ö¤Ê¤é moug ¥â¡¼¥° | ¨¸ú¥Æ¥¯¥Ë¥Ã¥¯ | ²èÌ̤ò¥­¥ã¥×¥Á¥ã¤¹¤ë>https://www.moug.net/tech/exvba/0150121.html]] 2015

** Google¥Þ¥Ã¥×ɽ¼¨ [#z16f89c2]
-[[¥¼¥í¤«¤é¤Ï¤¸¤á¤ëExcel VBA¡ÜWeb¥µ¡¼¥Ó¥¹(9) Google¥Þ¥Ã¥×¤òɽ¼¨¤·¤Æ¤ß¤è¤¦¡ÚGoogle Maps Platform­¢¡Û | TECH+>https://news.mynavi.jp/techplus/article/excelvbaweb-9/]]


**  CSV¤äExcel¤ËSQL¤ò¼Â¹Ô [#ud98d858]
-[[¡ÚExcel VBA¡ÛCSV¤äExcel¥Õ¥¡¥¤¥ë¤ËSQL¤ò¼Â¹Ô¤¹¤ë¥Ä¡¼¥ë - Qiita>https://qiita.com/taukuma/items/7c65f377e62081800804]]


** ¥Þ¥¯¥í¤Î¼«Æ°¼Â¹Ô¤òÍÞÀ© [#e8efef0f]
-[[¥Þ¥¯¥í¤ò¼Â¹Ô¤µ¤»¤º¤ËExcel¥Õ¥¡¥¤¥ë¤ò³«¤¯ÊýË¡¡£¥Ö¥Ã¥¯¥ª¡¼¥×¥ó»þ¤Ë¼«Æ°Åª¤Ë¥Þ¥¯¥í¤¬¼Â¹Ô¤µ¤ì¤Ê¤¯¤Ê¤ë¤è | ¥é¥Ö¥°¥¢¥Ð>https://love-guava.com/open-excel-book-without-running-macro/]] 2019
--¥Õ¥¡¥¤¥ë¤ò³«¤¯¢ªShift¤ò²¡¤·¤Ê¤¬¤é³«¤¯

-[[¡ÎExcel VBA¡Ï¥Þ¥¯¥í¤Î¼«Æ°¼Â¹Ô¤ò»ß¤á¤ë¤Ë¤Ï¡© | Æü·Ð¥¯¥í¥¹¥Æ¥Ã¥¯¡ÊxTECH¡Ë>https://xtech.nikkei.com/it/atcl/column/15/090100207/090100052/]] 2015
 Application.EnableEvents = False



** ·Ù¹ðÍÞÀ© [#c478d36c]
 Application.DisplayAlerts = False '·Ù¹ðÍÞÀ©

** ¥Õ¥¡¥¤¥ë¥À¥¤¥¢¥í¥°¡Ê¥ª¡¼¥×¥ó¡Ë [#f5041b4a]
    Dim dlg As FileDialog
    Set dlg = Application.FileDialog(msoFileDialogOpen)
    dlg.InitialFileName = "C:\Windows\"
    dlg.Show 'execute ¤À¤È³«¤¯½ê¤Þ¤Ç¤ä¤Ã¤Æ¤¯¤ì¤ë
    
    Cells(1, 1) = dlg.SelectedItems(1)

-[[[VBA]¥Õ¥©¥ë¥ÀÁªÂò¥À¥¤¥¢¥í¥°¤Î»È¤¤Êý¡¦»È¤¤Ê¬¤±>https://y-moride.com/vba/dailog-folder-picker.html]] 2021


-Win32API¤òľá¤­¤·¤¿¤¤¾ì¹ç
--https://www.moug.net/tech/acvba/0020007.html
 Public Declare Function GetOpenFileName _
                        Lib "comdlg32.dll" _
                          Alias "GetOpenFileNameA" ( _
                          pOpenFileName As OPENFILENAME) As Long
 
 'pOpenFileName¹½Â¤ÂÎ(¥æ¡¼¥¶¡¼ÄêµÁ·¿)¤ÎÀë¸À
 Type OPENFILENAME
     lStructSize       As Long    '¹½Â¤ÂΤΥµ¥¤¥º
     hwndOwner         As Long    '¥À¥¤¥¢¥í¥°¤ò½êÍ­
                                  '  ¤¹¤ë¥¦¥¤¥ó¥É¥¦¥Ï¥ó¥É¥ë
     hInstance         As Long    '¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥¤¥ó¥¹¥¿¥ó¥¹
     lpstrFilter       As String  '¥Õ¥£¥ë¥¿
     lpstrCustomFilter As Long    '¥æ¡¼¥¶ÄêµÁ¥Õ¥£¥ë¥¿
     nMaxCustrFilter   As Long    '¥æ¡¼¥¶ÄêµÁ¥Õ¥£¥ë¥¿¤Î
                                  '  ¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º
     nFilterIndex      As Long    '¥Ç¥Õ¥©¥ë¥È¥Õ¥£¥ë¥¿¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹
     lpstrFile         As String  'ÁªÂò¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾
     nMaxFile          As Long    '¥Õ¥¡¥¤¥ë̾¤Î¥Ð¥Ã¥Õ¥¡
     lpstrFileTitle    As String  'ÁªÂò¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤Î¥¿¥¤¥È¥ë
     nMaxFileTitle     As Long    '¥Õ¥¡¥¤¥ë̾¤Î¥¿¥¤¥È¥ë¤Î¥Ð¥Ã¥Õ¥¡
     lpstrInitialDir   As String  '½é´ü¥Ç¥£¥ì¥¯¥È¥ê
     lpstrTitle        As String  '¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹¤Î¥¿¥¤¥È¥ë
     Flags             As Long    '¥ª¥×¥·¥ç¥ó
     nFileOffset       As Integer '¥Õ¥¡¥¤¥ë̾¤ÎºÇ¸å¤Î¡Ö\¡×¤Þ¤Ç¤Î
                                  '  ¥ª¥Õ¥»¥Ã¥ÈÃÍ
     nFileExtension    As Integer '³ÈÄ¥»Ò¤Þ¤Ç¤Î¥ª¥Õ¥»¥Ã¥ÈÃÍ
     lpstrDefExt       As String  '¥Ç¥Õ¥©¥ë¥È¤Î³ÈÄ¥»Ò
     lCustrData        As Long    'OS¤¬¥Õ¥Ã¥¯´Ø¿ô¤ËÅϤ¹¥¢¥×¥êÄêµÁ¤Î¥Ç¡¼¥¿
     lpfnHook          As Long    '¥á¥Ã¥»¡¼¥¸¤ò½èÍý¤¹¤ë¥Õ¥Ã¥¯´Ø¿ô
                                  '  ¤Ø¤Î¥Ý¥¤¥ó¥¿
     lpTemplateName    As Long
 End Type
 
 'Äê¿ôÀë¸À
 'Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤òÁªÂò²Äǽ¤Ë
 Public Const OFN_ALLOWMULTISELECT = &H200
 '¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¿·µ¬ºîÀ®¤¹¤ë¤«¤É¤¦¤«É½¼¨
 Public Const OFN_CREATEPROMPT = &H2000
 '¥¨¥¯¥¹¥×¥í¡¼¥é·Á¼°¤Î¥À¥¤¥¢¥í¥°¤ò»ÈÍÑ
 Public Const OFN_EXPLORER = &H80000
 '¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë̾¤òÆþÎÏÉԲĤË
 Public Const OFN_FILEMUSTEXIST = &H1000
 '¡ÖÆɤ߼è¤êÀìÍѡץÁ¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤òÈóɽ¼¨
 Public Const OFN_HIDEREADONLY = &H4
 '¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¥À¥¤¥¢¥í¥°¤Î¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¹¤ë
 Public Const OFN_NOCHANGEDIR = &H8
 Public Const OFN_NODEREFERENCELINKS = &H100000
 '¥Í¥Ã¥È¥ï¡¼¥¯¥³¥ó¥Ô¥å¡¼¥¿¤òÈóɽ¼¨¤Ë
 Public Const OFN_NONETWORKBUTTON = &H20000
 Public Const OFN_NOREADONLYRETURN = &H8000
 Public Const OFN_NOVALIDATE = &H100
 '¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤¿¾ì¹ç¡¢¾å½ñ¤­¤òÌ䤤¹ç¤ï¤»¤ë
 Public Const OFN_OVERWRITEPROMPT = &H2
 'Í­¸ú¤Ê¥Ñ¥¹Ì¾¤Î¤ß¤òÆþÎϲÄǽ¤Ë
 Public Const OFN_PATHMUSTEXIST = &H800
 '¡ÖÆɤ߼è¤êÀìÍѡץÁ¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ò¥ª¥ó¤Ë¤¹¤ë
 Public Const OFN_READONLY = &H1
 '¡Ö¥Ø¥ë¥×¡×¥Ü¥¿¥ó¤Îɽ¼¨
 Public Const OFN_SHOWHELP = &H10
 '³ÈÄ¥»Ò¤¬¥Ç¥Õ¥©¥ë¥È¤Î³ÈÄ¥»Ò¤È°Û¤Ê¤ë¾ì¹ç¤ËÀßÄꤵ¤ì¤ë¥Õ¥é¥°
 Public Const OFN_EXTENSIONDIFFERENT = &H400
 
 Public Function GetFileName() As String
     Dim pOpenFileName As OPENFILENAME
     Dim lngRet As Long
 
     'Access¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥Ï¥ó¥É¥ë¤ò¼èÆÀ
     pOpenFileName.hwndOwner = Application.hWndAccessApp
     pOpenFileName.hInstance = 0
     '¥Õ¥¡¥¤¥ë¥Õ¥£¥ë¥¿¤ÎÀßÄê
     pOpenFileName.lpstrFilter = "Á´¤Æ¤Î¥Õ¥¡¥¤¥ë (*.*)" & _
                                 String(1, vbNullChar) & _
                                 "*.*" & _
                                 String(2, vbNullChar)
     pOpenFileName.lpstrCustomFilter = 0
     pOpenFileName.nMaxCustrFilter = 0
     pOpenFileName.nFilterIndex = 1
     pOpenFileName.lpstrFile = String(511, vbNullChar)
     pOpenFileName.nMaxFile = 511
     pOpenFileName.lpstrFileTitle = String(512, vbNullChar)
     pOpenFileName.nMaxFileTitle = 511
     pOpenFileName.lpstrInitialDir = String(1, vbNullChar)
     pOpenFileName.lpstrTitle = String(1, vbNullChar)
     pOpenFileName.nFileOffset = 0
     pOpenFileName.nFileExtension = 0
     pOpenFileName.lpstrDefExt = String(1, vbNullChar)
     pOpenFileName.lCustrData = 0
     pOpenFileName.lpfnHook = 0
     pOpenFileName.lpTemplateName = 0
     pOpenFileName.lStructSize = Len(pOpenFileName)
     'ÆɼèÀìÍÑ¥Õ¥¡¥¤¥ë¤ò±£¤¹
     pOpenFileName.Flags = OFN_HIDEREADONLY _
                           Or OFN_EXPLORER
 
     lngRet = GetOpenFileName(pOpenFileName)
 
     GetFileName = Left(pOpenFileName.lpstrFile, _
                        InStr(pOpenFileName.lpstrFile, vbNullChar) - 1)
 
 End Function


** ¥¹¥¯¥ì¥¤¥Ô¥ó¥° [#l5890357]
-[[»þµë£±£°£°£°±ß¤Î»ö̳°÷¤µ¤ó¤Î¤¿¤á¤Î VBA ¥¹¥¯¥ì¥¤¥Ô¥ó¥°>https://qiita.com/callmekohei/items/d1e1d4c44e753e4d03de]] 2019.5

**¥¢¥É¥¤¥ó´ØÏ¢ [#c2cf0356]
-[[VBA¤ò¥ê¥Ü¥óUI¤ËÄɲ乤ë¡Ê¥¤¥ó¥¹¥È¡¼¥é¡¼ÉÕ¤­¡Ë>http://qiita.com/jp7eph/items/c8bf16b644dee82f9bfe]] 2017.7.17


** Excel¤ËGoogle Maps API¤ÇÃÏ¿Þ¤òËä¤á¹þ¤ß¡¢½»½ê¸¡º÷¡¢³ÈÂç¡¿½Ì¾®¡¢ÃÏ¿Þ¼ïÎàÊѹ¹ [#af08541d]
-http://www.atmarkit.co.jp/ait/articles/1409/05/news165.html


**³«¤¤¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤ÎÃ椫¤é̾Á°¤Îº¸Â¦¤¬°ú¿ô¤È¹çÃפ¹¤ë¥Õ¥¡¥¤¥ë¤òõ¤¹ [#ye1502e2]
 '£²¤Ä°Ê¾å¤¢¤Ã¤¿¤é¥¨¥é¡¼
 Function schFile(name As String) As Workbook
 
     Dim cnt As Integer
     cnt = 0
 
     Set schFile = Nothing
 
     Dim bk As Workbook
     For Each bk In Workbooks
         Dim ln As Integer
         ln = Len(name)
         Debug.Assert (ln > 0)
         If StrConv(Left(bk.name, ln), vbUpperCase) = StrConv(name, vbUpperCase) Then
             If Not (schFile Is Nothing) Then
                 MsgBox ("[" & name & "]¤Ç»Ï¤Þ¤ë¥Õ¥¡¥¤¥ë¤¬£²¤Ä°Ê¾å¤¢¤ê¤Þ¤¹")
                 End
             End If
 
             Debug.Assert (schFile Is Nothing)  'Ʊ¤¸Ì¾Á°¤Ç»Ï¤Þ¤ë¥Õ¥¡¥¤¥ë¤¬£²¤Ä°Ê¾å¤¢¤Ã¤¿¤é¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹
             Set schFile = bk
             '¤³¤³¤Ç¤¹¤°¤ÏÊÖ¤é¤Ê¤¤¡¡£²¤Ä°Ê¾å¤¢¤Ã¤¿¤é¤Þ¤º¤¤¤«¤é
         End If
     Next
 
     If schFile Is Nothing Then
         MsgBox ("[" & name & "]¤Ç»Ï¤Þ¤ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó")
         End
     End If
 
 End Function

**countifs¤Î¿ô¼°¤ò¸µ¤Ë¡¢Æ±¤¸¾ò·ï¤Ç¥Õ¥£¥ë¥¿¤ò¤«¤±¤ë [#db5c2d93]
 Sub ¿ô¼°¤«¤é¥Õ¥£¥ë¥¿¡¼(r As Range)
 Dim strSuusiki As String
 Dim varPrm As Variant
 Dim sh As Worksheet
 Dim ac As Worksheet
 Dim lngLoop As Long
 Dim lngColNo As Long
 Dim strJoken As String
 Dim rngFil As Range
 
     Application.ScreenUpdating = False
     Application.Calculation = xlCalculationManual
 
     Set sh = Sheets("hoge")
     Set ac = r.Worksheet
 
     strSuusiki = r.Formula ''³ºÅö¥»¥ë¤Î¿ô¼°¤ò¼è¤ê½Ð¤¹
     strSuusiki = Replace(strSuusiki, "=countifs(", "", , , vbTextCompare) '¡Ç;ʬ¤Ê¤È¤³¤í¤ò¾Ã¤¹
     strSuusiki = Replace(strSuusiki, "=countif(", "", , , vbTextCompare) '¡Ç;ʬ¤Ê¤È¤³¤í¤ò¾Ã¤¹
     strSuusiki = Replace(strSuusiki, ")", "") '¡Ç;ʬ¤Ê¤È¤³¤í¤ò¾Ã¤¹
     varPrm = Split(strSuusiki, ",") '¡ÇCountifs¤Î¥Ñ¥é¥á¡¼¥¿¤Î¤ß¤òÇÛÎó¤Ëʬ³ä¤¹¤ë
 
     If Not sh.AutoFilterMode Then ''¥ª¡¼¥È¥Õ¥£¥ë¥¿¡¼¤¬ÉÕ¤¤¤Æ¤Ê¤¤¾ì¹ç
         Intersect(sh.UsedRange, sh.Range("10:65535")).AutoFilter '¡Ç¥Õ¥£¥ë¥¿¡¼¤ò¤Ä¤±¤ë
     End If
 
     If sh.FilterMode Then '¡Ç¥Õ¥£¥ë¥¿¡¼¤¬¤«¤«¤Ã¤Æ¤¤¤ë¾õÂ֤ΤȤ­¤Ï¥Õ¥£¥ë¥¿¡¼¥¯¥ê¥¢
         sh.ShowAllData
     End If
 
     Set rngFil = sh.AutoFilter.Range
 
     For lngLoop = 0 To UBound(varPrm) Step 2
         lngColNo = Range(varPrm(lngLoop)).Column    ''ÇÛÎó¤Î¶ö¿ôÈÖÌܡḡº÷¾ò·ïÈϰϤΥ«¥é¥àÈÖ¹æ¤ò¼èÆÀ
         strJoken = varPrm(lngLoop + 1)              ''ÇÛÎó¤Î´ñ¿ôÈÖÌܡḡº÷¾ò·ï¤ò¼èÆÀ
         If InStr(strJoken, """") > 0 Then
             strJoken = Replace(strJoken, """", "") '¡Ç""¤¬¤¢¤ë¾ì¹ç¤ÏÄê¿ô¡Ê¡É¡É¤Ï¾Ã¤¹¡Ë
         Else
             strJoken = ac.Range(strJoken).Value '¡Ç¡É¡É¤¬¤Ê¤¤¾ì¹ç¤Ï¥»¥ë¤Ø¤Î»²¾È¤Î¤¿¤á»²¾ÈÀè¤ÎÃͤò¼èÆÀ
         End If
 
 
         rngFil.AutoFilter Field:=lngColNo, Criteria1:=strJoken
     Next
 
     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
 
 End Sub

**¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤¿¤é¾å¤Î¹Ô¡Ê£³¹ÔÌܡˤˤ¢¤²¤ë [#y32e4897]
 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim r As Integer
    r = Target.Range.row
    If r = 3 Then
        Exit Sub
    Else
        ThisWorkbook.Worksheets(1).Activate
        Rows("3:3").Select
        Selection.EntireRow.Insert
 
        r = r + 1
        Rows(r & ":" & r).Select
        Selection.Cut
        Range("A3").Select
        ActiveSheet.Paste
 
        Range("A" & r).Select
        Selection.EntireRow.Delete
    End If
 End Sub

**¥»¥ë¤ÎÃͤòʸ»úÎó¤È¤·¤Æ¼èÆÀ¤·¤¿¤¤¾ì¹ç [#p20b2af8]
 Cells(i,j).Text


** ¥Õ¥£¥ë¥¿·Ï [#ma24e96c]
-¥Õ¥£¥ë¥¿¤ò¥¯¥ê¥¢¤¹¤ë
 ActiveSheet.ShowAllData

-[[¹Ô¤¬Èóɽ¼¨¤«È½Äꤹ¤ë>https://www.relief.jp/docs/excel-vba-check-if-row-hidden.html]]
--Range.Hidden¥×¥í¥Ñ¥Æ¥£¤ò¸«¤ë

-[[¥ª¡¼¥È¥Õ¥£¥ë¥¿Å¬ÍѸå¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¹Ô¤Î¤ß¤òÂоݤ˽èÍý¤ò¹Ô¤¦>https://www.blackcat.xyz/article.php/ProgFAQ-Xls_ProcessToCellAfterAutoFill]]


** ¸½ºß¸«¤Æ¤¤¤ë¥Ö¥Ã¥¯¤ÎÁ´¥·¡¼¥È¤«¤é_YMDHMS¤È¤¤¤¦ÃͤÎÆþ¤Ã¤¿¥»¥ë¤ò¤¹¤Ù¤Æõ¤·¡¢¤½¤Î²¼¤Ë¤¢¤ë¥»¥ë¤Ë¥Õ¥©¡¼¥Þ¥Ã¥È¤òÀßÄꤹ¤ë [#afb8f6b1]
  Sub ÆüÉդΥե©¡¼¥Þ¥Ã¥È½¤Àµ()
    Debug.Print ("¥Õ¥©¡¼¥Þ¥Ã¥È½¤Àµ³«»Ï")
    Dim bk As Workbook
    Dim sht As Worksheet
    Set bk = ActiveWorkbook
    Dim i As Integer
    For i = 1 To bk.Worksheets.Count
        Set sht = bk.Worksheets(i)
        With sht
            .Activate
            .Cells(1, 1).Select
            Dim r As Range
            Set r = Cells.Find(What:="_YMDHMS", After:=ActiveCell, LookIn:=xlValues, _
                LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
                MatchCase:=False, MatchByte:=False, SearchFormat:=False)
            If Not r Is Nothing Then
                Dim firstPos As String
                firstPos = r.Address
                Do
                    Dim s As String
                    .Cells(r.row, r.Column).Select
                    If Trim(.Cells(r.row + 1, r.Column)) <> "" Then
                        s = .Cells(r.row, r.Column)
                        Debug.Print (.Name & ":" & r.row & "," & r.Column & "," & s)
                        .Cells(r.row + 1, r.Column).NumberFormatLocal = "yyyy-mm-dd hh:mm:ss"
                        .Cells(r.row + 1, r.Column).HorizontalAlignment = xlLeft
                        Dim rcol As Range
                        Set rcol = .Columns(r.Column)
                        rcol.AutoFit
                    End If
                    Set r = Cells.FindNext(r)
                    DoEvents
                Loop While (r.Address <> firstPos)
            Else
                '¤½¤â¤½¤â¤Ê¤¤
            End If
        End With
    Next
    MsgBox ("OK")
  End Sub


**º£ÁªÂò¤·¤Æ¤¤¤ë¥·¡¼¥È [#y63ffaf8]
-Application.SelectedSheets ¤ò»²¾È¤¹¤ë


**¡Ö̾Á°¡×¤ÎÁ´¾Ã¤· [#l1b923d9]
-¥á¥Ë¥å¡¼¤«¤é¾Ã¤·¤Æ¤¤¤ë¤È°ì²ó¤Ë£±¤Ä¤·¤«¾Ã¤»¤Ê¤¯¤ÆÌÌÅݤʤΤǡ¢°Ê²¼¤Î¥Þ¥¯¥í¤Ç
 for i = ActiveWorkbook.Names.Count to 1 step -1
   ActiveWorkbook.Names(i).Delete
 Next



** ¥Ñ¥¹¥ï¡¼¥ÉÉÕ¤­¤Ç¥Ö¥Ã¥¯¤òÊݸ¤¹¤ë [#fb962dce]
 ActiveWorkbook.SaveAs Filename:= _
 "hoge.xls", FileFormat:= _
 xlExcel8, Password:="anestec", WriteResPassword:="", ReadOnlyRecommended _
 :=False, CreateBackup:=False

**¼ê¤Ã¼è¤êÁ᤯Excel¥·¡¼¥È¤Î°ìÍ÷¤òÆÀ¤ë¤Ë¤Ï [#mb3fd2e2]
-ALT+F11¤ò²¡²¼(VBA¥¨¥Ç¥£¥¿¤¬µ¯Æ°)
-CTRL+G¤ò²¡²¼(¥¤¥ß¥Ç¥£¥¨¥¤¥È¥¦¥¤¥ó¥É¥¦¤¬µ¯Æ°)
 For Each i In ThisWorkbook.Sheets: debug.print i.name : next i 
¤ò¥¿¥¤¥×¤·¤ÆEnter¤ò²¡²¼


**¡ÎEsc¡Ï¥­¡¼¤Ë¤è¤ëExcel VBA¤Î¼Â¹ÔÃæÃǤòËɻߤ¹¤ë [#jd547d76]
-http://www.atmarkit.co.jp/fwin2k/win2ktips/1437disescexcl/disescexcl.html
 Application.EnableCancelKey = xlDisabled


**¸ß´¹À­¥Á¥§¥Ã¥¯¤Î¥À¥¤¥¢¥í¥°¤¬½Ð¤ë¤Î¤òÍÞÀ© [#r83ca239]
-Office2007¤Ç .xls¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤è¤¦¤È¤·¤¿¤È¤­¤Ë½Ð¤ë¥À¥¤¥¢¥í¥°¤òÍÞÀ©¤·¤¿¤¤¾ì¹ç¤Ï¡¢¾å½ñ¤­³Îǧ¤ÎÍÞÀ©¤ÈƱ¤¸¤è¤¦¤Ë
 Application.DisplayAlerts=False
¤È¤¹¤ë


**Excel¤ÇÆÃÄê¤ÎÃͤˤʤ俤Ȥ­¤Î¥¢¥¯¥·¥ç¥ó [#l5ea8ee5]
-ÆÃÄê¤Î¥»¥ë¤ËÆÃÄê¤ÎÃͤ¬ÆþÎϤµ¤ì¤¿¤È¤­¤Ë¥Þ¥¯¥í¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤¹¤ë¤Ë¤Ï¡©  	
--http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9c7.html
--WorkSheet_Change¤Î¥¤¥Ù¥ó¥È¥×¥í¥·¡¼¥¸¥ã¤Ë½èÍý¤ò½ñ¤±¤ÐÎɤ¤¡£ÅöÁ³¤Ê¤¬¤éExcel¤ÎÀßÄê¤Ç¥Þ¥¯¥í¼Â¹Ô¤òµö²Ä¤·¤Æ¤ª¤¯É¬ÍפϤ¢¤ë¡Ê¥ª¥×¥·¥ç¥ó¤Î¥»¥­¥å¥ê¥Æ¥£ÀßÄê¡Ë


**¥Ä¥ê¡¼¥Ó¥å¡¼¥³¥ó¥È¥í¡¼¥ë [#d09d738e]
-[[Tree View Control¤ÎÁȤ߹þ¤ß>http://officetanaka.net/excel/vba/treeview/01.htm]]
--¡Ö¥Ä¡¼¥ë¡×-¡Ö¤½¤Î¾¤Î¥³¥ó¥È¥í¡¼¥ë¡×¤«¤é¡ÖMicrosoft TreeView Control¡×¤òÁªÂò
-http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFrmUsingTreeView1.html
-http://www.tsware.jp/study/indexv10.htm
-http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9710/aki/


**VBA ¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤È¼Â¹Ô»þ¥¨¥é¡¼ [#xb623945]
-http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_200_020.html
-Excel2002¤«¤é¤¢¤ëÌÏÍÍ
-¥³¥ó¥Ñ¥¤¥ë¤Îµ¡Ç½¤Ï¥¿¥¤¥×¥ß¥¹¤Ê¤É¤Î¥Á¥§¥Ã¥¯¤ò¤¹¤ë¤¿¤á¤Î¤â¤Î¤È¹Í¤¨¤ë


**CSV¤òUTF-8¤ÇÊݸ¤¹¤ë [#l005b80d]
-Ä̾ï¤ÎSaveµ¡Ç½¤Ç¤ÏUnicode¤Þ¤Ç¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¤¬¡¢¤¤¤¯¤Ä¤«ÊýË¡¤Ï¤¢¤ë
-¥Õ¥ê¡¼¤Î¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ¹¤ëÊýË¡
--http://www.vector.co.jp/soft/winnt/prog/se320375.html
-ADODB.Stream¤ò»È¤¦ÊýË¡
    Dim myFileName As String
    Dim myPath As String
    Dim NewFileName As String
    
    myFileName = ActiveWorkbook.name
    myPath = ActiveWorkbook.Path
    
    Dim outbook As Workbook
    Set outbook = ActiveWorkbook
    Dim sht As Worksheet
 
    Dim i As Integer
    For i = 1 To ActiveWorkbook.Worksheets.Count
        Windows(myFileName).Activate
        NewFileName = ActiveWorkbook.Worksheets(i).name
        Set sht = outbook.Worksheets(i)
        Dim StreamIn As Object
        Set StreamIn = CreateObject("ADODB.Stream")
        With StreamIn
            .Open
            .Charset = "shift_jis"
            .Type = 2
            .Position = 0
        End With
    
        Dim StreamOut As Object
        Set StreamOut = CreateObject("ADODB.Stream")
        With StreamOut
            .Open
            .Charset = "UTF-8"
            .Type = 2
            .Position = 0
        End With
    
        Dim row As Integer
        row = sht.UsedRange.Cells(sht.UsedRange.Count).row
 
        Dim line As Integer
        line = sht.UsedRange.Cells(sht.UsedRange.Count).Column
 
        Dim fileName As String
        fileName = myPath & "\" & NewFileName & ".dat"
 
        Dim r As Integer
        For r = 1 To row
            Dim l As Integer
            For l = 1 To line - 1
                StreamIn.WriteText sht.Cells(r, l) & ","
            Next
            StreamIn.WriteText sht.Cells(r, line), 1
        Next
        
        StreamIn.SetEOS
        StreamIn.Position = 0
 
        StreamIn.CopyTo StreamOut
        StreamOut.SetEOS
        StreamOut.Position = 0
        
        StreamOut.SaveToFile fileName, 2
        StreamIn.Close
        StreamOut.Close
        Set StreamIn = Nothing
        Set StreamOut = Nothing
    Next i

-[[¥¨¥¯¥»¥ëVBA¤ÇBOM̵¤·¤ÎUTF-8¤ÇCSV¥Õ¥¡¥¤¥ë¤Ê¤É¤ò½ÐÎϤ¹¤ëÊýË¡>https://tonari-it.com/excel-vba-utf8n-bom/]] 2016

**Shift JISʸ»úÎó¤òUTF-8¤Ë [#be75801e]
 Public Function encodeUTF8(ByRef strUni As String) As Byte()
    encodeUTF8 = ADOS_Encode("UTF-8", strUni)
 End Function
 
 Private Function ADOS_Encode(ByVal cset As String, ByRef strUni As String) As Byte()
    Dim objStm As ADODB.Stream
    Set objStm = New ADODB.Stream
    objStm.Open
    objStm.Type = adTypeText
    objStm.Charset = cset
    objStm.WriteText strUni
 
    objStm.Position = 0
    objStm.Type = adTypeBinary
    Select Case UCase(cset)
      Case "UNICODE", "UTF-16"
        objStm.Position = 2
      Case "UTF-8"
        objStm.Position = 3
    End Select
    ADOS_Encode = objStm.Read()
 
    objStm.Close
 
 End Function


**ÉÁ²èÍÞÀ© [#m5c0a9fc]
 Application.ScreenUpdating = false


**¥·¡¼¥ÈʤÙÂؤ¨¥µ¥ó¥×¥ë [#r4181544]
-£±¥·¡¼¥ÈÌܤÎ2¹ÔÌÜ2ÎóÌܤ«¤é¥·¡¼¥È̾¤òʤ٤Ƥª¤­¡¢¤½¤Î½çÈ֤ˣ²ÈÖÌܰʹߤΥ·¡¼¥È¤òÆþ¤ìÂؤ¨¤ë¥Þ¥¯¥í¤ÎÎã¡Ê¤Á¤ç¤Ã¤È¥Ð¥°¤Ã¤Æ¤ë¤«¤â¡Ä¡Ë

 Sub ¥·¡¼¥ÈʤÙÂؤ¨()
 
    Dim bk As Workbook
    Set bk = ThisWorkbook
 
    Dim sht As Worksheet
    Set sht = ActiveSheet
 
    Dim names() As String
    Dim i As Integer
 
    '¥·¡¼¥È̾Æɤ߹þ¤ß
    Dim j As Integer
    j = 0
    For i = 2 To 1000 '¤È¤ê¤¢¤¨¤º1000¥·¡¼¥È¤Þ¤Ç
        If sht.Cells(i, 2) <> "" Then
            ReDim Preserve names(j)
            names(j) = sht.Cells(i, 2)
            j = j + 1
        Else
            Exit For
        End If
    Next
 
    For i = 0 To UBound(names)
        Dim wsht As Worksheet
        Set wsht = bk.Worksheets(names(i))
        Call wsht.Move(After:=bk.Worksheets(1 + i))
    Next
 
    MsgBox ("OK")
 
 End Sub


**Excel¥·¡¼¥È¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½çʤÙÂؤ¨ [#b6d35ae7]
-http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200610/06100285.txt



**ÎóÉý¤ò¹ç¤ï¤»¤ë [#oe1773d9]
    'ost ¤ÏÂоݥ·¡¼¥È
    ost.Activate
    ost.Range(ost.Cells(1, 1), ost.Cells(osr, 8)).Columns.AutoFit
-columns¤ËÂФ·¤Æ¹Ô¤¦¤Î¤¬¥Ý¥¤¥ó¥È


**¥Þ¥¯¥í¤Î¤¢¤ë¥Ö¥Ã¥¯ [#cf43f3f0]
-ThisWorkbook¤Ç»²¾È


**AddTextBox ¤ËÅϤ¹ºÂɸ¤ÎÅϤ·Êý [#mb19aab1]
-http://www.keep-on.com/excelyou/2001lng4/200102/01020461.txt
-Cells().Left¤È¤«.Top¤È¤«¤òÍøÍѤ¹¤ë¤È¤è¤¤

**¥Ö¥Ã¥¯¤Î¥·¡¼¥È¥¤¥ó¥Ç¥Ã¥¯¥¹¤òºî¤ë [#h5eba5dc]
-ºÇ½é¤Î¥·¡¼¥È¤Ë¡ÖÌܼ¡¡×¤È¤¤¤¦Ì¾Á°¤ò¤Ä¤±¤ë¤Î¤Ç¤¢¤é¤«¤¸¤áÍÑ°Õ¤·¤Æ¤ª¤¯
 Sub MakeIndex()
    
    Dim s_¥·¡¼¥È̾() As String
    
    Dim mokuji As Worksheet
    Set mokuji = Worksheets(1)
    mokuji.Name = "Ìܼ¡"
    
    '¡ÔÌܼ¡¡Õ¥·¡¼¥È¾ðÊó
    Dim row As Integer
    Dim col As Integer
    row = 1
    col = 2
 
    '  ¥·¡¼¥È̾¼èÆÀ
    mokuji.Select
    Dim J As Integer
    For J = 1 To Worksheets.Count
        ReDim Preserve s_¥·¡¼¥È̾(J)
        s_¥·¡¼¥È̾(J) = Worksheets(J).Name
    Next J
    
    mokuji.Activate
 
    '  ¼èÆÀ·ë²ÌÈ¿±Ç
    Dim K As Integer
    For K = 2 To UBound(s_¥·¡¼¥È̾)
 
        Dim sht_name As String
        sht_name = s_¥·¡¼¥È̾(K)
        If sht_name <> "" Then
            Dim rnt As Range
            Set rnt = mokuji.Cells(K, col)
            mokuji.Hyperlinks.Add _
                Anchor:=rnt, _
                Address:="", SubAddress:="'" & sht_name & "'!A1", TextToDisplay:=sht_name
            mokuji.Cells(K, col).Select
        End If
 
    Next K
 End Sub


**¥·¡¼¥È¤Ë²èÁü¤ò¼è¤ê¹þ¤ß¡¢¤½¤ÎÀê¤á¤Æ¤¤¤ëÈϰϤᦲ¼¥»¥ë¤òÆÀ¤ë [#l25d83f6]
 Dim acs As Worksheet
 Set acs = ActiveSheet
 acs.Cells(1, 1).Select
 acs.Pictures.Insert(²èÁü¤Îpath).Select
 Dim r As Range
 Set r = acs.Pictures(1).BottomRightCell


**¤¤¤é¤Ê¤¤¥·¡¼¥È¤ò¾Ã¤¹ [#z5170efa]
    Application.DisplayAlerts = False '·Ù¹ðÍÞÀ©
    With outbook
        'ËÜÅö¤Ï£³¤Ä¤È¤Ï¸Â¤é¤Ê¤¤¤¬¡ÊExcel¤ÎÀßÄê¤Ë¤è¤Ã¤ÆÊѤï¤ë¤Î¤Ç¡Ë¡¢¤È¤ê¤¢¤¨¤º
        .Worksheets("Sheet1").Delete
        .Worksheets("Sheet2").Delete
        .Worksheets("Sheet3").Delete
    End With
--¢¨¥·¡¼¥È¿ô¤ò£°¤Ë¤Ï¤Ç¤­¤Þ¤»¤ó¤Î¤ÇÃí°Õ


**¥×¥í¥°¥é¥à¤ÎƱ´üŪ¤Ê¼Â¹Ô [#a45e7192]
-¢ªVisual Basic(.NET°ÊÁ°)¤Î¥Ú¡¼¥¸¤ò¸«¤è

**ɽ¼¨ÇÜΨ¤òÊѤ¨¤ë [#kf626c7f]
 ActiveWindow.Zoom = 75

**¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯ºîÀ® [#s57ccf65]
 ɽ¼¨Ê¸»úÎó = "hoge"
 ¥¢¥É¥ì¥¹ = "http://www.kernel-net.ne.jp/tech/"
 Range("A1").Select
 ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
        Address:=¥¢¥É¥ì¥¹, TextToDisplay:=ɽ¼¨Ê¸»úÎó
--ºï½ü
 Range("A1").Hyperlinks.Delete
 Range("A1").ClearContents


**°õºþÀßÄê ±¦²¼¤Ë¥Ú¡¼¥¸¿ô¤òÆþ¤ì¤ë [#ya0551da]
 ActiveSheet.PageSetup.RightFooter = "&P/&N"


**°õºþÈϰϤÎÀßÄê [#b21d0bb9]
 ActiveSheet.PageSetup.PrintArea = "$A$1:$N$83" 'A1·Á¼° Range¤Ç¤Ï¥À¥á¤Ç¤¹


**Range¤«¤éA1·Á¼°¤Îʸ»úÎó¤òÆÀ¤ë¤Ë¤Ï [#k93f604a]
 str = Cells(row, col).Address


**Worksheets.Add¤ÎAfter°ú¿ô¤Ê¤É¤ÇÅϤ¹¤Î¤Ï¥·¡¼¥È̾¤Ç¤Ï¤Ê¤¤ [#a9dd6dbf]
-¥·¡¼¥È¤ÎÈÖÌܤǤâ¤Ê¤¤¡£Worksheet¤Î¥ª¥Ö¥¸¥§¥¯¥È¤òÅϤµ¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤ÇÃí°Õ 
 '¥Ö¥Ã¥¯ËöÈø¤Ø¤Î¥·¡¼¥ÈÄɲÃ
 Worksheets.Add after:=Worksheets(Worksheets.Count)
-Worksheet.Move ¤ä .Copy¤âƱÍÍ


**VBA¤Ç¥Ç¡¼¥¿¤¬ÊѤï¤Ã¤¿ÀÚ¤ìÌܤDzþ¥Ú¡¼¥¸¤·¤¿¤¤ [#d805d981]
-http://oshiete1.goo.ne.jp/qa1919970.html
 Worksheets(SheetName).Range("B" + Trim$(Str$(rindex))).Activate
 ActiveWindow.SelectedSheets.HPageBreaks.Add ActiveCell '²þ¥Ú¡¼¥¸ÁÞÆþ
 ActiveWindow.SelectedSheets.VPageBreaks.Add ActiveCell

**°õºþ²þ¥Ú¡¼¥¸¤òÄ´À°¤¹¤ë [#p8c34944]
 '°õºþ¥Ö¥ì¡¼¥¯°ÌÃÖÈùÄ´À° 13·åÌܤÀ¤Ã¤¿¤é±¦¤Ë£±¤Ä¤º¤é¤¹
 'ľÀÜ»ØÄê¤Ç¤­¤Ê¤¤¤Î¤À¤í¤¦¤«?
 Function adjust_print(st As Worksheet) As Integer
 
         Debug.Print (st.Name)
         st.Activate
         st.Cells(1, 14).Select
         
         '¤³¤ì¤Ç¤ÏÊѤï¤Ã¤Æ¤¯¤ì¤Ê¤¤¤è¤¦¤À
         If st.VPageBreaks.Count = 0 Then
             st.VPageBreaks.Add st.Range("N1")
         Else
             st.VPageBreaks(1).Location = st.Range("N1")
         End If
         
         '¤³¤¦¤·¤Ê¤¤¤È¤¢¤ï¤»¤é¤ì¤Ê¤¤¤Î¤À¤í¤¦¤«?
         If st.VPageBreaks(1).Location.Column = 13 Then
             ActiveWindow.View = xlPageBreakPreview
             ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
             ActiveWindow.View = xlNormalView
         End If
         
         st.Cells(1, 1).Select
 
     adjust_print = 0
 End Function
 
 Sub °õºþ°ÌÃÖ¹ç¤ï¤»()
 '
     Dim shts As Sheets
     Set shts = ActiveWorkbook.Worksheets
     Dim i As Integer
     Dim st As Worksheet
     
     'Âоݥ·¡¼¥ÈËè
     For i = 4 To shts.Count
         Set st = shts(i)
         Call adjust_print(st)
         DoEvents
     Next
     
 End Sub


**CSV·Á¼°¤ÇÊݸ¤¹¤ë [#wd906960]
 ActiveWorkbook.SaveAs Filename:="hoge.csv", FileFormat:=xlCSV, CreateBackup:=False


**¥Ç¡¼¥¿¤Î¤¢¤ëºÇ¸å¤Î¹Ô¤òÊÖ¤¹ [#i2c480c9]
 e=Worksheets("sheet1").Range("A1").End(xlDown).Row
¤â¤·¤¯¤Ï
 e=Worksheets("sheet1").Range("A65536").End(xlUp).Row '¥Ç¡¼¥¿Ãæ¤Ë¶õ¤­¹Ô¤¬¤¢¤ë¾ì¹ç

-¾å¤Î¤ä¤êÊý¤Ç¤Ï¡¢Îó¤Ê¤é£²Îó°Ê¾å¤Ê¤¤¤È256¤¬Ê֤äƤ·¤Þ¤¦¤Î¤Ç¡¢²¼µ­¤Î¤è¤¦¤Ë¤ä¤ëÊý¤¬¤¤¤¤¤è¤¦¤À¡£
 Dim row As Integer
 row = sht.UsedRange.Cells(sht.UsedRange.Count).row
 
 Dim line As Integer
 line = sht.UsedRange.Cells(sht.UsedRange.Count).Column

-¤³¤Î¤ä¤êÊý¤Ë¤Ä¤¤¤Æ[[¤³¤Á¤é¤Îblog>http://d.hatena.ne.jp/takayukis/20090329/1238296405]] ¤Ç¤´»ØŦ¤¢¤ê¡£´¶¼Õ
 ¤³¤ì¤Ï¡¢¥Ç¡¼¥¿¤ÎÆþÎϤÎ̵ͭ¤Ë´Ø¤ï¤é¤º¡¢¥»¥ë¤Î°ìÉô¤Ë½ñ¼°ÀßÄê¤Ê¤É¤¬¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢
 Í­¸ú¤ÊÈϰϤȤ·¤ÆÃͤòÊÖ¤·¤Þ¤¹¡£
 ¤¹¤Ã¤­¤ê¤È¤·¤Æ¤¤¤Æ¡¢¤¦¤Þ¤¯¹Ô¤­¤½¤¦¤Ç¤¹¤¬¡¢¼Â¤ÏÍî¤È¤··ê¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


**¥´¡¼¥ë¥·¡¼¥¯¤ò¼Â¹Ô¤µ¤»¤ë [#l2d08fb3]
 'E3¤ÎÃͤ¬0¤Ë¤Ê¤ë¤è¤¦¤ËB3¤òÊѲ½¤µ¤»¤ë¾ì¹ç
 Range("E3").GoalSeek Goal:=0, ChangingCell:=Range("B3")


**¥Ö¥Ã¥¯¤ò³«¤¤¤Æ¥·¡¼¥ÈËè¤Ë¤Ê¤Ë¤«¤¹¤ë¥µ¥ó¥×¥ë [#a3c4ba90]
 Function prcBook(bk As String) As Integer
     
     Debug.Print ("-------book:" & bk & "¥¹¥¿¡¼¥È---------------------")
     
     Dim wbk As Workbook
     '»ØÄê xls ¤ò³«¤¯
     'Set wbk = Application.Workbooks(bk)
     Set wbk = Workbooks.Open(bk)
     wbk.Activate
     
     Dim cnt As Integer
     cnt = wbk.Worksheets.Count
     Debug.Assert (cnt > 0)
     Dim i As Integer
     For i = 1 To cnt
         Dim wst As Worksheet
         Set wst = wbk.Worksheets(i)
         
         Call prcSheet(wst)
         
     Next
     
     wbk.Close
     Debug.Print ("-------½èÍý½ª¤ï¤ê---------------------")
 
 End Function


** VBA¥×¥í¥¸¥§¥¯¥È¤ò¥í¥Ã¥¯¤¹¤ë [#i2a1b4c0]
-[[VBA¤Î¥×¥í¥¸¥§¥¯¥È¤Ë¥Ñ¥¹¥ï¡¼¥É¤òÀßÄꤹ¤ë:VBE(Visual Basic Editor)>https://www.relief.jp/docs/017816.html]] 2012
--¥×¥í¥¸¥§¥¯¥È¤Î¥×¥í¥Ñ¥Æ¥£¤Ç¡ÖÊݸî¡×¥·¡¼¥È¤ÇÀßÄꤹ¤ë

** VBA¥Õ¥¡¥¤¥ë¤Î¥Ç¡¼¥¿¹½Â¤ [#h90d8d88]
-[[Evil Clippy: MS Office maldoc assistant | Outflank>https://outflank.nl/blog/2019/05/05/evil-clippy-ms-office-maldoc-assistant/]] 2019
--https://github.com/outflanknl/EvilClippy
--VBA¤Î¥Ñ¥¹¥ï¡¼¥É³°¤¹¥Ä¡¼¥ë
--¥Ð¥¤¥Ê¥ê¤ÏÍÑ°Õ¤µ¤ì¤Æ¤Ê¤¤¤Î¤Ç¥½¡¼¥¹¤«¤é¥³¥ó¥Ñ¥¤¥ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
 Make sure you have Visual Studio installed. Then execute the following command from a Visual Studio developer command prompt:
 csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs


-[[[MS-OVBA]: Office VBA File Format Structure | Microsoft Docs>https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-ovba/575462ba-bf67-4190-9fac-c275523c75fc]] 2022.2

-[[OpenMCDF is a 100% .net / C# component that allows developers to manipulate Microsoft Compound Document Files (also known as OLE structured storage).>https://github.com/ironfede/openmcdf/]] 2022.5

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS