반응형

Excel for scientists and engineer - numerical method by E. Joseph Billo

의 미분방정식의 풀이 입니다.

 

first derivative function
first derivative function

Option Explicit
Function FirstDerivDemo(expression, variable) As Double
'Custom function to return the first derivative of a formula in a cell

Dim OldX As Double, OldY As Double, NewX As Double, NewY As Double
Dim Formulastring As String, XAddress As String

Formulastring = expression.Formula
OldY = expression.Value
XAddress = variable.Address 'Default is absolute reference
OldX = variable.Value
NewX = OldX * 1.00000001
Formulastring = Application.ConvertFormula(Formulastring, xlA1, xlA1, xlAbsolute) 'Convert all references in formula to absolute
Formulastring = Application.Substitute(Formulastring, XAddress, NewX)
NewY = Evaluate(Formulastring)
FirstDerivDemo = (NewY - OldY) / (NewX - OldX)
End Function

 

 

반응형
반응형

엑사남 강의 14강 BeforeRightClick event

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

'If ActiveSheet.ChartObjects.Count > 0 Then
'    ActiveSheet.ChartObjects.Delete
'End If

    If Target.Count > 1 Then '선택, 타겟한 셀의 개수가 1개 이상이라면'
        
        If Target.Cells(1, 1) <> "" Then '선택, 타겟한 셀들 중 첫행 & 첫열의 셀이 공백이 아니라면'
            
            Call chart01 'chart01함수를 실행해라. 호출구문'
            Cancel = True  '우클릭으로 샐행되는 기존의 기능(팝업생성)을 취소할거니? = 예'
            
        Else
            With ActiveSheet.ChartObjects 'ActiveSheet.ChartObjects 묶음
           If .Count > 0 Then
             .Delete
            End If
            End With
        End If
    
    
    End If

End Sub

14. BeforeRightClick Event.xlsm
0.02MB

https://www.youtube.com/watch?v=77w2--MBQPc&list=PLX_j6S8lDkZ_Wr0S9fGLX6utD_Uznj6Dg&index=14 

 

반응형

'VBA' 카테고리의 다른 글

VBA에서 만든 함수 #NAME? error  (0) 2022.03.09
미분계산 VBA  (0) 2022.03.08
엑사남_13강 DoubleClick 이벤트  (0) 2022.03.05
범위를 변수로 지정하는 방법  (0) 2022.03.01
With문  (0) 2022.02.24
반응형

 

 

13.DoubleClick_event.xlsm
0.01MB

 

 

반응형

'VBA' 카테고리의 다른 글

미분계산 VBA  (0) 2022.03.08
엑사남 강의 14강 BeforeRightClick event  (0) 2022.03.06
범위를 변수로 지정하는 방법  (0) 2022.03.01
With문  (0) 2022.02.24
UserForm  (0) 2022.02.23
반응형

일반적으로 변수를 지정하려면

변수의 형식을 지정하고 변수를 정의합니다.

 

dim strS as String

strS = Target

 

범위를 지정하려면 마찬가지로 변수의 형식을 지정하고 변수를 정의한다.

dim rngR as Range

rngR = range("F7:L26")

 

위와 같이 지정하면 안되고 다음과 같이 정의해야 한다.

어떠한 객체의 변수 선언은 Set 구문을 사용한다.

 

Set rngR = range("F7:L26")

 

 

반응형

'VBA' 카테고리의 다른 글

엑사남 강의 14강 BeforeRightClick event  (0) 2022.03.06
엑사남_13강 DoubleClick 이벤트  (0) 2022.03.05
With문  (0) 2022.02.24
UserForm  (0) 2022.02.23
Open Close evnet 만들기  (0) 2022.02.23
반응형

With문은 같은 내용을 하나로 묶는 기증이다.

 

Width ~ End Width 

 

아래 코드에서 .Colorindex 앞에는 Target.Interior이 생략된 것이라고 보면 된다.

  

   With Target.Interior
        If .ColorIndex = 3 Then
            .ColorIndex = 0
        Else
            .ColorIndex = 3
        End If
    End With

 

 

 

 

반응형

'VBA' 카테고리의 다른 글

엑사남_13강 DoubleClick 이벤트  (0) 2022.03.05
범위를 변수로 지정하는 방법  (0) 2022.03.01
UserForm  (0) 2022.02.23
Open Close evnet 만들기  (0) 2022.02.23
Clear, ClearContents, Delete  (0) 2022.02.22
반응형

UserForm

 

ID와 PASSWORD를 입력하면 파일을 열고

아니면 종료하는 코드

 

 

Private Sub CommandButton1_Click()
    'Sheet3 B2셀에 textbox1에 입력된 내용을 입력하라.

    'Sheet3 B3셀에 textbox2에 입력된 내용을 입력하라.
    Sheet3.Range("B2:B3").ClearContents
    Sheet3.Range("B2") = Me.TextBox1.Value
    Sheet3.Range("B3") = Me.TextBox2.Value
    If Sheet3.Range("B4") = True Then
        MsgBox "어서오세요"
        Unload UserForm1
    Else
        MsgBox "ID와 PASSWORD를 확인하세요"
        ActiveWorkbook.Close False
    End If
End Sub

 

 

userform1.xlsm
0.02MB

 

이 내용을 유튜브 엑셀을 사랑하는 남자 강의 내용을 따라 해본 것입니다.

 

반응형

'VBA' 카테고리의 다른 글

범위를 변수로 지정하는 방법  (0) 2022.03.01
With문  (0) 2022.02.24
Open Close evnet 만들기  (0) 2022.02.23
Clear, ClearContents, Delete  (0) 2022.02.22
MsgBox, InputBox  (0) 2022.02.21
반응형

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If MsgBox("정말 닫으시겠습니까?", vbYesNo) = vbNo Then
        MsgBox "닫기를 취소합니다."
        Cancel = True
    End If
End Sub

 


Private Sub Workbook_Open()
    MsgBox "안녕하세요. 반갑습니다."
End Sub

반응형

'VBA' 카테고리의 다른 글

With문  (0) 2022.02.24
UserForm  (0) 2022.02.23
Clear, ClearContents, Delete  (0) 2022.02.22
MsgBox, InputBox  (0) 2022.02.21
전체복사, 값만복사, 수식만복사, 서식만복사  (0) 2022.02.21
반응형

Sub clearall()
    Range("F7:L29").Clear
End Sub


Sub clearvalue()
    Range("F7:L29").ClearContents

End Sub


Sub deleterow()
    Range("7:26").Delete
End Sub


'clear은 행과 열을 그래로 두고 내용을 지우는 것이고
'delete는 행과 열을 지운다.

Sub clearformats()
    Range("F7:L29").clearformats
End Sub


'for문은 이용해서 한 행씩 지울때는 맨 아래부터 지워야 한다.
Sub test01()
    Dim i As Long
    
    For i = 26 To 7 Step -1
        If Cells(i, "G") = "남" Then
'셀.entireRow : 셀의 전체행
'셀.entireColumn : 셀의 전체 열
            'Cells(i, "G").EntireRow.Delete
            Rows(i).Delete
        End If
    
    Next i
End Sub

Sub hw()
    Dim lngR As Long
     lngR = Range("F10000").End(xlUp).Row
    For i = lngR To 7 Step -1
        If Cells(i, "G") = "남" Or Cells(i, "L") <= 70 Then
            Cells(i, "G").EntireRow.Delete
        End If
        
    Next i
End Sub

 

 

각각의 차이점

Range("A1").Clear             :셀은 그대로 두고 전체 지우기

Range("A1").ClearContents :셀은 그대로 두고 내용만 지우기

Range("A1").ClearFormats  :셀은 그대로 두고 서식만 지우기

Range("A1").ClearComments :셀은 그대로 두고 메모만 지우기

 

반응형

'VBA' 카테고리의 다른 글

UserForm  (0) 2022.02.23
Open Close evnet 만들기  (0) 2022.02.23
MsgBox, InputBox  (0) 2022.02.21
전체복사, 값만복사, 수식만복사, 서식만복사  (0) 2022.02.21
A1, R1C1 , R[1]C[1] style 차이점  (0) 2022.02.21
반응형

Private Sub CommandButton1_Click()
    Dim answer As Integer
    
    answer = MsgBox("Are you sure you want to empty the sheet?", vbYesNo + vbQuestion, "Empty Sheet")
    
    If answer = vbYes Then
      Cells.ClearContents
    Else
      'do nothing
    End If
End Sub

Private Sub CommandButton2_Click()
    myvalue = InputBox("Give me some input", "Hi", 1)
    Range("A1").Value = myvalue
End Sub

 

 

MsgBox_InputBox.xlsm
0.02MB

반응형
반응형

전체복사, 값만복사, 수식만복사, 서식만복사

 

전체복사하여 붙여넣기

Sub copyall()
    Range("O6").CurrentRegion.Clear

    'O6에 연속으로 붙어있는 영역의 내용을 삭제한다.

    Range("F6:L11").Copy

    'F6:L11 영역을 복사한다.
    Range("O6").PasteSpecial
    'O6을 기준으로 전체붙여넣기한다.      
    Range("F6").Select
    'F6셀을 선택한다.
    Application.CutCopyMode = False
    '복사한영역 표시 안함.
End Sub

값만 복사하여 붙여넣기
Sub copyvalues()
 Range("O6").CurrentRegion.Clear
    
    Range("F6").CurrentRegion.Copy
    Range("O6").PasteSpecial xlPasteValues
    Range("F6").Select
    
    Application.CutCopyMode = False

End Sub

 

수식만 복사하여 붙여넣기
Sub copyformulas()
    Range("K3").CurrentRegion.Copy
    Range("K7:L" & Range("B2")).PasteSpecial xlPasteFormulas
    Application.CutCopyMode = False
 End Sub

 

서식만 복사하여 붙여넣기
Sub copyformats()
    Range("F3:L3").Copy
    Range("F7:L" & Range("B2")).PasteSpecial xlPasteFormats
    Application.CutCopyMode = False
 End Sub


Sub copyHW()
 Dim i As Long
 Dim rng As Long
 rng = Range("E100").End(xlUp).Row
 For i = 7 To rng
    If Range("F" & i) = "남" Then
    Range("J2:K2").Copy
    Range("J" & i & ":K" & i).PasteSpecial
    Range("E2:K2").Copy
    Range("E" & i & ":K" & i).PasteSpecial xlPasteFormats
    Else
    Range("J3:K3").Copy
    Range("J" & i & ":K" & i).PasteSpecial
    Range("E3:K3").Copy
    Range("E" & i & ":K" & i).PasteSpecial xlPasteFormats
    End If
 Next i
    Application.CutCopyMode = False
End Sub

반응형

'VBA' 카테고리의 다른 글

Clear, ClearContents, Delete  (0) 2022.02.22
MsgBox, InputBox  (0) 2022.02.21
A1, R1C1 , R[1]C[1] style 차이점  (0) 2022.02.21
매크로 기록(절대참조, 상대참조)  (0) 2022.02.21
값 바꾸기  (0) 2022.02.20

+ Recent posts