Страница 1 из 1

EXCEL-VBA-Как"вытащить"ПеременнуюСреды,КакЗаписать

Добавлено: 16 ноя 2005, 15:05
anval
1)Как "вытащить" в макросе переменную среды - в данном случае сетевое имя комьютера.
2)В ячейку нужно поместить техт "м3", где "3" должна быть представлена в виде показателя степени. При ручном вводе информации этот символ вводится копированием из таблицы символов . Как достичь такого же результата при программном формировании ячейки?

Добавлено: 16 ноя 2005, 18:43
Игорь Акопян
2) попробовать через коллекцию Characters изменить шрифт нужного сивмола на superscript

Добавлено: 17 ноя 2005, 05:39
Avsha
смотрите...
forum/viewtopic.php?t=4304&highlight=

Применительно к вашему случаю...
MsgBox (Environ("COMPUTERNAME"))

Наверно вы знаете, как их просмативать в Windows...
Но на всякий случай: Пуск\Выполнить\cmd\команда set

Добавлено: 17 ноя 2005, 05:51
Avsha
Есть ячейка со значением "м3"
Нажимаете на ней F2, затем выделяете только цифру 3, правая кнопка мыши - "Формат ячеек",
устанавливаете опцию "Верхний индекс" - вот вам и показатель степени.

Затем все тоже проделал с записью макроса, вот что получилось...

Код: Выделить всё

Sub Макрос1()
' Макрос1 Макрос
' Макрос записан 17.11.2005 (HomePC)

    Range("F14").Select
    ActiveCell.FormulaR1C1 = "м3"
    With ActiveCell.Characters(Start:=1, Length:=1).Font
        .Name = "Arial Cyr"
        .FontStyle = "обычный"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    With ActiveCell.Characters(Start:=2, Length:=1).Font
        .Name = "Arial CYR"
        .FontStyle = "обычный"
        .Size = 10
        .Strikethrough = False
        .Superscript = True
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
End Sub


Очевидно, что за это дело отвечает свойство .Superscript = True, что и советовал Игорь Акопян.

Добавлено: 17 ноя 2005, 09:57
anval
Avsha, b]Игорь Акопян[/b], спасибо!
С переменной среды все отлично, ответ подходит, спасибо за него и ссылку,
На 2-ой вопрос привожу еще один ответ (Pashulka,на другом форуме), для моих нужд он более удобен.

ActiveCell.Value = "m" & ChrW(179)

Добавлено: 17 ноя 2005, 11:58
Avsha
Вариант с ChrW(179) мне тоже понравился,
попутно разобрался, что не всегда надо доставать таблицу символов для копирования в Excel,
можно вбить этот символ сочетанием Alt(удерживаем)-0-1-7-9-Alt(отпускаем).

Только если в показатель необходимо будет записать выражение, типа (x+1) придеться воспользоваться верхним индексом,
но похоже вам Объема (м&#179 ;) достаточно :)

Добавлено: 17 ноя 2005, 17:05
anval
Да, я тоже стала пользоваться вводом с помощью Alt(этот способ известен давно, но когда им не пользуешься длительное время, просто о нем забываешь). Что касается объема, мне действительно достаточно в показателе степени одной тройки и с помощью предложенного приема моя проблема легко решилась, можно сказать, одним оператором(в сформированной программно таблице перед выдачей результата глобальной заменой вместо м3 ставится м&sup3 ;)