728x90
반응형
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=247755252&ref=me2lnk
본 질문에 답변을 달면서 글로 남겨 봅니다.
질문의 내용은 이해할 수 없지만...
나름 심심해서 몇줄 코딩을 해보았습니다.
아래사진처럼 이름을 입력하면 해당 열이 자동으로 선택되게 했습니다.
아래 사진에서는"하" 가 되겠지요...
입력 버튼을 누렴 아래 사진처럼 셀에 내용이 입력되고 메모가 삽입됩니다.
다른 이름도 하나 더해볼까요?
아래 사진처럼 메모가 삽입됩니다.
나머지 설명 안한 기능들은 테스트를 하면서 공부해보세요 ^^
시골이라 네트워크 상황이 너무 안좋아서 테더링으로 사용하고 있는데 무지 불편하네요 ...ㅠ.ㅠ
아래는 폼 모듈의 소스입니다.
Private Sub CommandButton1_Click()
Dim C As Range, T As String
If Len(TextBox1) = 0 Then MsgBox "이름을 입력하세요": Exit Sub
If ComboBox1.ListIndex = -1 Then MsgBox "열을 선택하세요": Exit Sub
Set C = Sheets("sheet1").Columns(ComboBox1.ListIndex + 4).Find(TextBox1, , , 1) '// 입력된 이름을 찿는다.
If C Is Nothing Then '// 찿는 이름이 없을경우
' Set C = Sheets("Sheet1").Cells(Rows.Count, "C").End(3)(2).Offset(, ComboBox1.ListIndex + 1)
On Error Resume Next
Set C = Sheets("Sheet1").Cells(7, ComboBox1.ListIndex + 4).Resize(Rows.Count - 7).SpecialCells(xlCellTypeBlanks) '// 빈셀이 있으면
If Err Then Set C = Sheets("Sheet1").Cells(Rows.Count, ComboBox1.ListIndex + 4).End(3)(2) '// 빈셀이 없으면 마지막 셀 다음셀
On Error GoTo 0
End If
With C
.Value = TextBox1 '// 셀에 이름을 넣고
If .Comment Is Nothing Then '// 메모가 없으면
.AddComment '// 메모를 생성
T = Now() & ":" & vbCrLf '// 매모에 넣을 내용
Else
T = .Comment.Text '// 매모의 내용을 T변수에 넣고
T = T & vbCrLf & vbCrLf & Now() & ":" & vbCrLf '// 추가되는 날자와 시간
End If
.Comment.Text T & TextBox2 '// 메모에 내용을 넣음
.Comment.Visible = True '// 메모를 활성화 하고
.Comment.Shape.Select True '// 메모를 선택
With Selection.ShapeRange '// 선택된 메모
.Width = 966 * 0.5 '// 이미지 넓이의 50%
.Height = 155 * 0.5 '// 이미지 높이의 50%
.Fill.Visible = msoTrue '// 좌우 비율고정
'// 이미지를 넣고
.Fill.UserPicture _
"http://blogskthumb.phinf.naver.net/20160111_271/program114_1452516785624M2d5t_JPEG/%C4%B8%C3%B3.jpg?type=crop966"
.ScaleWidth 2, msoFalse, msoScaleFromTopLeft '// 도형의 넓이를 조정
.ScaleHeight 2, msoFalse, msoScaleFromTopLeft '// 도형의 높이를 조정
.IncrementLeft -125 '// 도형을 수평이동
.IncrementTop 4 '// 도형을 수직이동
End With
.Comment.Shape.AutoShapeType = msoShapeRoundedRectangle '// 도형의 모양
.Comment.Visible = False '// 메모를 숨김
.Offset(, -(ComboBox1.ListIndex + 1)).Value = .Row - 6 '// Data 인덱스 넣음
End With
End Sub
'// 이름을 입력하는 텍스트박스에서 키를 눌렀다 띨경우 이름을 찿아 메모를 텍스트 박스로 넣어줌
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim i As Integer, C As Range
i = ChoSung(TextBox1)
If ComboBox1.ListCount < i Then Exit Sub
ComboBox1.ListIndex = i - 1
Set C = Sheets("Sheet1").Columns(ComboBox1.ListIndex + 4).Find(TextBox1, , , 1)
If C Is Nothing Then Exit Sub
If C.Comment Is Nothing Then Exit Sub
TextBox2 = C.Comment.Text
End Sub
Private Sub UserForm_Initialize()
Dim T As Variant
T = Sheets("Sheet1").Range("D6").Resize(, 14).Value
With ComboBox1
.List = Application.Transpose(T)
.ListIndex = -1
.MatchRequired = True
.ListWidth = .Width
End With
End Sub
|
아래는 일반 모듈의 소스입니다.
Sub Macro()
UserForm1.Show 0
End Sub
Function ChoSung(T As String)
Dim k As Long
ChoSung = 0
If Mid(T, 1, 1) Like "[가-힣]" Then
k = AscW(Mid(T, 1, 1))
k = k - &HAC00
k = Int(k / (21 * 28))
ChoSung = Choose(k + 1, 1, 1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 11, 12, 13, 14)
End If
End Function
|

반응형
댓글