ºî¶È¤ò¸úΨ²½¤µ¤»¤ëExcel VBA Tips½¸

ºî¶È¤ò³Ú¤Ë¤¹¤ë°Ù¤Î¶ìÏ«¤òÀˤ·¤Þ¤Ê¤¤¡¢ËÜËöžÅÝ¤Ê¥×¥í¥°¥é¥Þ¡¼¤¬¼ÂºÝ¤Ë¶È̳¤Ç»È¤Ã¤¿Excel VBA¤Î¥µ¥ó¥×¥ë¤ò¸ø³«¤·¤Æ¤¤¤Þ¤¹¡£·ÇºÜ¤·¤Æ¤¤¤ë¥µ¥ó¥×¥ë¤Ï´Ø¿ôñ°Ì¤Ç¤¹¤Î¤Ç¡¢ÉôÉʲ½¤·¤ä¤¹¤¤¤È»×¤¤¤Þ¤¹¡£


»ñÎÁºîÀ®Ãæ¡¢ÉÑÈˤ˥·¡¼¥È¤ò¤Þ¤¿¤°²ó¿ô¤¬Â¿¤¯¤Ê¤Ã¤Æ¤­¤¿¾ì¹ç¤ËÎɤ¤¤«¤â¡¦¡¦¡¦

Excel¤ÇÀß·×½ñ¤ä¥Æ¥¹¥È»ÅÍͽñ¤Ê¤É¤òºîÀ®¤·¤Æ¤¤¤Æ¡¢¥·¡¼¥È¿ô¤¬Â¿¤¯¤Ê¤Ã¤Æ¤¯¤ë¤È¡¢
Á°¤Î¥·¡¼¥È¤Ç²¿¤Æ½ñ¤¤¤¿¤Ã¤±¡©¡©¤È¡¢Ctrl + PageUp¤Þ¤¿¤ÏPageDown¤òÏ¢ÂǤ·¤ÆÂ¾¤Î¥·¡¼¥È¤ò»²¾È¤·¡¢¤½¤Î¤ï¤º¤é¤ï¤·¤µ¤Ë¥¤¥é¤Ã¤È¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¤«¡©
¤½¤·¤Æ¡¢¤Á¤ç¤Ã¤È¤Ç¤â¤½¤Î¥¤¥é¥¤¥é¤ò²þÁ±¤¹¤ë°Ù¤Ë¡¢¥ê¥Í¡¼¥à¥³¥Ô¡¼¤·¤Æ£²¤ÄExcel¥Õ¥¡¥¤¥ë¤ò²èÌ̤Ëɽ¼¨¤µ¤»¡¢¸«¤Ê¤¬¤éÊÔ½¸¤Ã¤Æ¤·¤¿¤³¤È¤¢¤ê¤Þ¤»¤ó¤«¡©

»²¾ÈÍѤÈÊÔ½¸Íѥ֥寤ò³«¤¤¤Æ


¤½¤·¤Æ¡¢¼¡Âè¤Ë½¸ÃæÎϤ¬ÀÚ¤ì¤Æ¤¯¤ë¤È¡¦¡¦¡¦¤É¤Ã¤Á¤¬ÊÔ½¸Ãæ¤Î¥Õ¥¡¥¤¥ë¤À¤Ã¤¿¤Ã¤±¡©¡©
¤Èº®Íð¤Î¸¶°ø¤Ë¤â¤Ê¤ê¤Þ¤¹¡£

¾åµ­²þÁ±ºö¤Îή¤ì¤òÀ°Íý¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

£±¡¥ºî¶ÈÃæ¤Î¥Ö¥Ã¥¯¤ò¾å½ñ¤­Êݸ
¡¡¢­
£²¡¥¥Þ¥¤¥³¥ó¥Ô¥å¡¼¥¿¤è¤ê¡¢£±¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤¹¤ë
¡¡¢­
£³¡¥£²¤Î¥Õ¥¡¥¤¥ë¤ò»²¾ÈÍѤȤ·¤Æ³«¤¯

¤Ç¡¢¡É¤É¤Ã¤Á¤¬ÊÔ½¸Ãæ¤À¤Ã¤¿¤«¡©¡É¤È¥Õ¥¡¥¤¥ë¤ò¸«Ê¬¤±¤ë¤è¤ê¤â¡¢¸íưºî¤òËɤ°¤¿¤á»²¾ÈÍÑ¥·¡¼¥È¤ÏÆÉ¤ß¼è¤êÀìÍѤǤ¢¤ì¤Ð¡¢¾å½ñ¤­Êݸ¤ò¤·¤è¤¦¤È¤·¤¿»þ¤Ë¡¢µ¤¤Å¤¯¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤³¤ì¤é¤ò¼«Æ°²½¤µ¤»¤ë¤Ë¤Ï¡¢°ÊÁ°¾Ò²ð¤·¤¿VBA¤òÁȤ߹ç¤ï¤»¤ì¤ë¤³¤È¤Ç²Äǽ¤Ç¤¹¡£

¡¦ºî¶È¤ò¸úΨ²½¤µ¤»¤ëExcel VBA Tips½¸ ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¼è¤êÀìÍѤËÀßÄꤹ¤ë
¡¦ºî¶È¤ò¸úΨ²½¤µ¤»¤ëExcel VBA Tips½¸ VBA¤«¤éºî¶ÈÃæ¤Î¥Ö¥Ã¥¯¤ò¥Ð¥Ã¥¯¥¢¥Ã¥×¤¹¤ë

°Ê²¼¤ËÁȤ߹ç¤ï¤»¤¿¾ì¹ç¤ÎVBA¤ò·ÇºÜ¤·¤Þ¤¹¡£

VBA¤Î½èÍý³µÍפϰʲ¼¤ÎÄ̤ê¤Ç¤¹¡£
­¡ºî¶ÈÃæ¤Î¥Ö¥Ã¥¯¤ò¾å½ñ¤­Êݸ
­¢ÆüÉÕ»þ¹ï¤òÉղä·¤¿¥Õ¥¡¥¤¥ë̾ʸ»úÎó¤òºîÀ®¤¹¤ë
­£ºî¶ÈÃæ¥Ö¥Ã¥¯¤ò­¢¤Î¥Õ¥¡¥¤¥ë̾¤Ç¥³¥Ô¡¼¤¹¤ë
­¤­£¤Î¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¼è¤êÀìÍѤˤ¹¤ë
­¥­¤¤Î¥Õ¥¡¥¤¥ë¤ò³«¤¯
'--------------------------------------------------------------------
' ´Ø¿ô̾ : MkReadOnlyBook
' µ¡Ç½   : ºî¶ÈÃæ¥Ö¥Ã¥¯¤òÆÉ¤ß¼è¤êÀìÍѤǥê¥Í¡¼¥à¥³¥Ô¡¼¤·¡¢É½¼¨¤µ¤»¤ë
' °ú¿ô   : ¤Ê¤·
' Ìá¤êÃÍ : ¤Ê¤·
' ºîÀ®Æü : 2008/03/29
' ºîÀ®¼Ô : lily(http://vbatips.blog37.fc2.com/)
'--------------------------------------------------------------------
Sub MkReadOnlyBook()
Dim wb As Workbook
Dim ret As Integer
Dim sFileName As String
Dim sNowTime As String

    '³Îǧ¥á¥Ã¥»¡¼¥¸
    ret = MsgBox("»²¾ÈÍѥ֥寤òºîÀ®¤·¤Þ¤¹¤«¡©", vbYesNo)
    If ret = vbNo Then
        Exit Sub
    End If
    
    '¥¢¥¯¥Æ¥£¥Ö¥Ö¥Ã¥¯¼èÆÀ
    Set wb = ActiveWorkbook

    '¥¢¥¯¥Æ¥£¥Ö¥Ö¥Ã¥¯¤ÎÊÔ½¸³Îǧ
    If wb.Saved = False Then
        'ÊÔ½¸Í­¤ê¤Î¾ì¹ç¤Ï¾å½ñ¤­Êݸ¤ò¹Ô¤¦
        wb.Save
    End If

    '¸½ºß»þ¹ï¤ò¼èÆÀ¤¹¤ë
    sNowTime = CStr(Format(Date, "yymmdd")) & CStr(Format(Time, "hhmmss"))

    '¥³¥Ô¡¼Àè¤Î¥Õ¥¡¥¤¥ë̾ºîÀ®¡Ê¥Õ¥ë¥Ñ¥¹¡Ë
    sFileName = wb.Path & "\" & sNowTime & "_" & wb.Name

    '¥³¥Ô¡¼ºîÀ®
    wb.SaveCopyAs sFileName
    
    'ÆÉ¤ß¼è¤êÀìÍѤËÀßÄê
    Call SetReadOnly(sFileName)

    'ÆÉ¤ß¼è¤êÀìÍѤΥ֥寤ò³«¤¯
    Workbooks.Open fileName:=sFileName

End Sub
'--------------------------------------------------------------------
' ´Ø¿ô̾ : SetReadOnly
' µ¡Ç½   : ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¼è¤êÀìÍѤËÀßÄꤹ¤ë
' °ú¿ô   : ¥Õ¥ë¥Ñ¥¹
' Ìá¤êÃÍ : ¤Ê¤·
' ºîÀ®Æü : 2008/03/29
' ºîÀ®¼Ô : lily(http://vbatips.blog37.fc2.com/)
'--------------------------------------------------------------------
Sub SetReadOnly(sPath As String)
Dim fso As FileSystemObject

    '¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®
    Set fso = New FileSystemObject
    
    'ÆÉ¤ß¼è¤êÀìÍѤÎÀßÄê
    fso.GetFile(sPath).Attributes = ReadOnly

    Set fso = Nothing
End Sub
MkReadOnlyBook´Ø¿ô¤Ë¥·¥ç¡¼¥È¥«¥Ã¥È¥­¡¼¤ò³ä¤êÅö¤Æ¤¿¤ê¡¢¥Ä¡¼¥ë¥Ð¡¼¤ËÅÐÏ¿¤¹¤ì¤ÐÊØÍø¤À¤È»×¤¤¤Þ¤¹¡£¤Þ¤¿¡¢»²¾ÈÍѥ֥寥ª¡¼¥×¥ó¸å¤Ë¥¦¥£¥ó¥É¥¦¤òÀ°Î󤵤»¤ëVBA¤òÄɵ­¤¹¤ì¤Ð¡¢¤è¤êÊØÍø¤«¤â¤·¤ì¤Þ¤»¤ó¡£

¥³¥á¥ó¥È

¥³¥á¥ó¥È¤ÎÅê¹Æ


´ÉÍý¼Ô¤Ë¤À¤±É½¼¨¤òµö²Ä¤¹¤ë

̵ÎÁ¥Û¡¼¥à¥Ú¡¼¥¸ ¥¢¥Õ¥£¥ê¥¨¥¤¥È ¥ì¥ó¥¿¥ë¥µ¡¼¥Ð¡¼ FC2¥Ö¥í¥°