2017-05-15 7 views
-2

아래 보이는 것처럼 문자 (A-Z)를 생성하는 데 도움이되는 플러그인이 있습니까? 아니면 이것을하기 위해 VBA 스크립트를 작성할 수 있습니까?Excel에서 문자 그리기

enter image description here

+2

당신이 무엇을 요구하고 있는지 분명하지 않습니다. 세포를 채색하여 얻을 수있는 단어 예술을 원한다고합니다. 내가 알 수있는 추가 기능이 없습니다 (어쨌든 외부 리소스 요청은 스택 오버플로에서 벗어난 것입니다). 이를 수행하기 위해 VBA 매크로를 명확하게 작성할 수 있습니다. 당신이하려는 일에 따라 특별히 어렵지는 않을 것입니다. –

+0

re : '* 할 수 있습니다 ** * ** 이렇게 할 수있는 일종의 VBA 스크립트를 작성할 수 있습니다.'- 음, * 할 수 있습니다. 당신의 질문에 코드가 없기 때문에 나는 당신에 대해 확신하지 못합니다. – Jeeped

+0

가장 쉬운 방법은 저해상도 LED 디스플레이에 사용되는 유형의 오픈 소스 도트 매트릭스 글꼴을 찾는 것입니다. 예를 들어 다음과 같은 파일을 찾을 수 있어야합니다. 알파벳의 각 문자에 대해 16x12 0-1 값 행렬을 포함합니다. VBA로 읽은 다음 Excel 범위 (리터럴 0과 1)로 밀어 넣고 나머지는 조건부 서식을 적용합니다. –

답변

1

유래는 코드에 대한-나 서비스는 없습니다. 어쨌든 작업은 재미보고, 나는 그것에 대해 뭔가를 코딩하기로 결정했습니다 :

Option Explicit 

Public Sub WriteLetterA() 

    Dim varLetterA(8)  As Variant 
    Dim lngColCounter  As Long 
    Dim lngRowCounter  As Long 
    Dim blnReverse   As Boolean 
    Dim rngCell    As Range 

    blnReverse = True 

    varLetterA(0) = Array(1, 1, 1, 0, 0, 1, 1, 1) 
    varLetterA(1) = Array(1, 0, 0, 0, 0, 0, 0, 1) 
    varLetterA(2) = Array(1, 0, 0, 1, 1, 0, 0, 1) 
    varLetterA(3) = Array(1, 0, 0, 1, 1, 0, 0, 1) 
    varLetterA(4) = Array(0, 0, 0, 1, 1, 0, 0, 0) 
    varLetterA(5) = Array(0, 0, 0, 0, 0, 0, 0, 0) 
    varLetterA(6) = Array(0, 0, 0, 0, 0, 0, 0, 0) 
    varLetterA(7) = Array(0, 0, 1, 1, 1, 1, 0, 0) 
    varLetterA(8) = Array(0, 0, 1, 1, 1, 1, 0, 0) 

    Cells(1, 1).Select 

    For lngRowCounter = 0 To UBound(varLetterA) 
     For lngColCounter = 0 To UBound(varLetterA(lngRowCounter)) 
      Set rngCell = Cells(lngRowCounter + 1, lngColCounter + 1) 
      If varLetterA(lngRowCounter)(lngColCounter) Then 
       rngCell.Interior.Color = IIf(blnReverse, vbBlack, vbWhite) 
      Else 
       rngCell.Interior.Color = IIf(blnReverse, vbWhite, vbBlack) 
      End If 
     Next lngColCounter 
    Next lngRowCounter 

End Sub 

' Points for improvement - varLetterA in a separate class 
' Refer to the sheet, do not assume it 
' Pass the first cell as a reference 

이것은 당신이 무엇을 얻을 수 있습니다 :

blnReverse = False

enter image description here

blnReverse = True

enter image description here

개선점을 살펴보십시오. 나머지 알파벳을 만들기로 결정하면 유용 할 수 있습니다. 행운을 빕니다.

+1

"Stackoverflow는 코드 서비스 (code-for-me) 서비스가 아닙니다. 어쨌든, 작업은 재미있어 보였습니다. 그리고 그것에 대해 뭔가를 코딩하기로 결정했습니다."- 나는 한 번 이상 같은 방식으로 느꼈습니다. 'blnReverse' 매개 변수는 좋은 생각입니다. +1 –

+0

감사합니다. @ JohnColeman -'blnReverse'가 나타났습니다. 왜냐하면'varLetterA'에서'0'과'1'이 무엇인지 잊어 버렸기 때문에 나는이 방법이 더 쉬울 것이라고 생각했습니다. :) – Vityata