Могу ли я сделать фотографию, следуя за номером в Excel, или перенести ее из ячейки в ячейку по VBA? - PullRequest
1 голос
/ 09 марта 2019

Я только что закончил создание шахматной игры на Excel от VBA для своего школьного проекта. То, как я его построил, - каждая часть имеет номер и цвет (зеленый / красный):

1 - Pawn (x16)
2 - King (x2)
3 - Queen (x2)
4 - Bishop (x4)
5 - Night (x4)
6 - Rook (x4)

Просто чтобы это выглядело лучше, я хотел добавить фотографии каждой фигуры, которые будут следовать за номером, или которые будут перемещаться по рекомендации VBA, которая будет сопровождаться рекомендацией по перемещению фигуры. Я предпочитаю первый вариант, если это возможно, но второй тоже хорош. То, как я сейчас перемещаю фигуры, таково:

   MoveNum = Range(Range("j2").Value).Value
   Range(Range("j2").Value).Value = 0
   Range(Range("j2").Value).FormulaR1C1 = ""
   Range(Range("j2").Value).Font.Color = -0
   Range(Range("k2").Value).Value = MoveNum
   Range(Range("k2").Value).Font.Color = RGB(210, 0, 0)

(Это тот, который перемещает красные кусочки, единственная разница между ним и зеленым состоит в том, что RGB (0, 175, 20), а не (210, 0, 0) Кстати, весь мой код основан на числах, поэтому их нельзя менять / не использовать.

1 Ответ

1 голос
/ 09 марта 2019

В качестве экономии времени можно использовать Юникод символов вместо изображений:

♔♕♖♗♘♙♚♛♜♝♞♟

ЭтиUnicode 9812 до 9823 , и вы можете добавить их в Excel, используя либо функцию UNICHAR листа, либо ChrWфункция в VBA.

Кроме того, вы можете просто скопировать и вставить их сверху прямо на рабочий лист, а затем манипулировать ими так же, как и любым другим текстом, включая размер шрифта.

Вот рыцарь в 80pt: img

Мое предпочтительное место, чтобы посмотреть, когда мне нужен символ или значок, это (или идентифицировать): https://codepoints.net.По состоянию на март 2019 года Unicode содержит почти 140 000 символов, причем постоянно добавляется еще больше.
(Обязательно подпишите петицию , чтобы добавить смайлик из листьев горшка!) ?????


Если для выполнения вашего задания вам необходимо использовать images , вы можете:

Пример:

Option Explicit

Sub movePicToCell()
'move the image named "Picture 2" on worksheet "Sheet1" to cell "C3"
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ws.Shapes("Picture 2").Top = ws.Range("C3").Top
    ws.Shapes("Picture 2").Left = ws.Range("C3").Left
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...