OpenOffice Calc에서 Excel VBA 매크로 만들기 (2)
3438 단어 openofficeExcelVBA매크로
실행 이미지
우선은, 월 단위로의 일자와 요일을 셀에 출력하는 매크로를 짜 보았다.
E1 셀과 E2 셀에 월 단위로의 기간을 입력(예를 들면 2019년 7월이면 E1 셀에 「2019/07/01」, E2 셀에 「2019/07/31」이라고 입력)하고, F1 셀과 F2 각 셀에 해당하는 요일을 입력하고 매크로를 실행하면,
A3셀 이후에 날짜, B3셀 이후에 요일을 출력한다는 내용.
샘플 매크로
이번에 만든 매크로는 다음과 같습니다.
option vbasupport 1
Sub Main
REM E列2行目に指定した月末日から日部分だけ取り出す
Dim lastDay As String
lastDay = Cells(2, 5)
lastDay = Right(lastDay, 2)
Dim dayNum As Integer
dayNum = CInt(lastDay)
REM 曜日フラグの設定
Dim dayFlag As Integer
If (StrComp(Cells(1, 6), "月", vbTextCompare ) = 0) Then
REM 月初日が月曜日
dayFlag = 1
ElseIf (StrComp(Cells(1, 6), "火", vbTextCompare ) = 0) Then
REM 月初日が火曜日
dayFlag = 2
ElseIf (StrComp(Cells(1, 6), "水", vbTextCompare ) = 0) Then
REM 月初日が水曜日
dayFlag = 3
ElseIf (StrComp(Cells(1, 6), "木", vbTextCompare ) = 0) Then
REM 月初日が木曜日
dayFlag = 4
ElseIf (StrComp(Cells(1, 6), "金", vbTextCompare ) = 0) Then
REM 月初日が金曜日
dayFlag = 5
ElseIf (StrComp(Cells(1, 6), "土", vbTextCompare ) = 0) Then
REM 月初日が土曜日
dayFlag = 6
Else
REM 月初日が日曜日
dayFlag = 7
End If
Dim dayCnt As Integer
For dayCnt = 1 To 31
If (dayCnt <= dayNum) Then
REM 月末日までの日をA列の3行目から順に記入する
Cells(dayCnt + 2, 1) = dayCnt
REM 曜日を記入する
Select Case dayFlag
Case 1
Cells(dayCnt + 2, 2) = "月"
Case 2
Cells(dayCnt + 2, 2) = "火"
Case 3
Cells(dayCnt + 2, 2) = "水"
Case 4
Cells(dayCnt + 2, 2) = "木"
Case 5
Cells(dayCnt + 2, 2) = "金"
Case 6
Cells(dayCnt + 2, 2) = "土"
Case Else
Cells(dayCnt + 2, 2) = "日"
End Select
dayFlag = dayFlag + 1
If (dayFlag > 7) Then
REM 日曜まで到達したら、曜日フラグをリセット
dayFlag = 1
End If
Else
REM 月末日が31日より前の場合は、月末日の次の日から31日までの範囲を曜日も含めて空欄表示にする
Cells(dayCnt + 2, 1) = ""
Cells(dayCnt + 2, 2) = ""
End If
Next dayCnt
End Sub
VBA 호환 모드에서 매크로를 구성하는 경우 먼저 "option vbasupport 1"의 설명이 필요합니다.
[참고하신 페이지]
OpenOffice Calc의 OpenOfficeBasic을 VBA 호환 모드로 만드는 방법
h tps : // 그리고 너에게. 인후 / 포 st-2794 /
Calc에서 Excel VBA 매크로가 포함된 스프레드시트 시트 사용
h tp // w w. p로g 라민 g마 t. jp/오오노후후세_마c로/오오오_bmv등. HTML
OpenOffice 일본어 버전
htps //w w. 오빠의 흠. 오 rg / 그럼 /
Reference
이 문제에 관하여(OpenOffice Calc에서 Excel VBA 매크로 만들기 (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/WILLsPage/items/7df5d7f843c862cd7c8e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에 만든 매크로는 다음과 같습니다.
option vbasupport 1
Sub Main
REM E列2行目に指定した月末日から日部分だけ取り出す
Dim lastDay As String
lastDay = Cells(2, 5)
lastDay = Right(lastDay, 2)
Dim dayNum As Integer
dayNum = CInt(lastDay)
REM 曜日フラグの設定
Dim dayFlag As Integer
If (StrComp(Cells(1, 6), "月", vbTextCompare ) = 0) Then
REM 月初日が月曜日
dayFlag = 1
ElseIf (StrComp(Cells(1, 6), "火", vbTextCompare ) = 0) Then
REM 月初日が火曜日
dayFlag = 2
ElseIf (StrComp(Cells(1, 6), "水", vbTextCompare ) = 0) Then
REM 月初日が水曜日
dayFlag = 3
ElseIf (StrComp(Cells(1, 6), "木", vbTextCompare ) = 0) Then
REM 月初日が木曜日
dayFlag = 4
ElseIf (StrComp(Cells(1, 6), "金", vbTextCompare ) = 0) Then
REM 月初日が金曜日
dayFlag = 5
ElseIf (StrComp(Cells(1, 6), "土", vbTextCompare ) = 0) Then
REM 月初日が土曜日
dayFlag = 6
Else
REM 月初日が日曜日
dayFlag = 7
End If
Dim dayCnt As Integer
For dayCnt = 1 To 31
If (dayCnt <= dayNum) Then
REM 月末日までの日をA列の3行目から順に記入する
Cells(dayCnt + 2, 1) = dayCnt
REM 曜日を記入する
Select Case dayFlag
Case 1
Cells(dayCnt + 2, 2) = "月"
Case 2
Cells(dayCnt + 2, 2) = "火"
Case 3
Cells(dayCnt + 2, 2) = "水"
Case 4
Cells(dayCnt + 2, 2) = "木"
Case 5
Cells(dayCnt + 2, 2) = "金"
Case 6
Cells(dayCnt + 2, 2) = "土"
Case Else
Cells(dayCnt + 2, 2) = "日"
End Select
dayFlag = dayFlag + 1
If (dayFlag > 7) Then
REM 日曜まで到達したら、曜日フラグをリセット
dayFlag = 1
End If
Else
REM 月末日が31日より前の場合は、月末日の次の日から31日までの範囲を曜日も含めて空欄表示にする
Cells(dayCnt + 2, 1) = ""
Cells(dayCnt + 2, 2) = ""
End If
Next dayCnt
End Sub
VBA 호환 모드에서 매크로를 구성하는 경우 먼저 "option vbasupport 1"의 설명이 필요합니다.
[참고하신 페이지]
OpenOffice Calc의 OpenOfficeBasic을 VBA 호환 모드로 만드는 방법
h tps : // 그리고 너에게. 인후 / 포 st-2794 /
Calc에서 Excel VBA 매크로가 포함된 스프레드시트 시트 사용
h tp // w w. p로g 라민 g마 t. jp/오오노후후세_마c로/오오오_bmv등. HTML
OpenOffice 일본어 버전
htps //w w. 오빠의 흠. 오 rg / 그럼 /
Reference
이 문제에 관하여(OpenOffice Calc에서 Excel VBA 매크로 만들기 (2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/WILLsPage/items/7df5d7f843c862cd7c8e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)