спасибо, правда я уже и сам разобрался. все, равно спасибки... тады вопрос такой:
- Код: Выделить всё
Option Explicit
'Создаю перечисляемый тип для допустимых единиц измерения
Enum ЕдИзм
м
м2
м3
шт
комплект
кг
т
л
тыс_шт
End Enum
'Создаю перечисляемый тип для указания поставщиков, именуемых в договоре как "генподрядчик"
'и "субподрядчик"
Enum Поставка
Генподрядчик
Субподрядчик
End Enum
'Создаю тип данных, содержащий в себе всю информацию для одной единицы записи
Type Запись
№_по_ведомости As Long
Наименование_материала As String
Тип_Марка_по_ГОСТу As String
Единицы_измерения As ЕдИзм
Количество As Single
Поставщик As Поставка
End Type
Sub вывести_данные_по_записи()
Dim Строка As Запись, изм As String, пост As String
Строка.№_по_ведомости = 1
Строка.Наименование_материала = "Дизельное топливо, бензин"
Строка.Тип_Марка_по_ГОСТу = ""
Строка.Единицы_измерения = тыс_шт
Строка.Количество = 777
Строка.Поставщик = Генподрядчик
Select Case Строка.Единицы_измерения
Case 0
изм = "м"
Case 1
изм = "м2"
Case 2
изм = "м3"
Case 3
изм = "шт"
Case 4
изм = "комплект"
Case 5
изм = "кг"
Case 6
изм = "т"
Case 7
изм = "л"
Case 8
изм = "тыс. шт."
End Select
Select Case Строка.Поставщик
Case 0
пост = "Генподрядчика"
Case Else
пост = "Субподрядчика"
End Select
MsgBox ("Строка №" & Строка.№_по_ведомости & ": """ & Строка.Наименование_материала & """ " _
& Строка.Тип_Марка_по_ГОСТу & " " & Строка.Количество & " " & изм & " " _
& " поставка " & пост)
End Sub
Мне не нравится пользоваться в этом случае операторами CASE. Можно ли в обход показать в MSGBOXe не числовое значение, а то, что у меня получается с CASE, иными словами - можно ли преобразовать тип данных так, чтобы сразу получать тот же результат, что и выше?