Como Mudar as caracteristicas das mensagens do Msgbox ou InputBox ?

Anônima
2015-05-22T05:49:10+00:00

Bom Dia pessoal.

Como sou inciante em VBA, achei muito bom,pratico e facil de usar o Msgbox,InputBox nas rotinas que estou comecando a praticar.

Gostaria de saber se tem alguma maneira de mudar a caracteristica das mensagens com negrito ou tamanho de letra para poder destacar em determinados trechos das mensagens sem usar outros artificios complicados.

Desde ja agradeco

Tadao

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-31T20:22:52+00:00

Sobre Range("A1"), é mais simples do que você perguntou: se você escrever Range("A1") em qualquer componente do seu projeto VBA, o Excel interpretará que é a célula A1 da planilha ativa.

Da mesma forma, se você escrever Worbooks("Pasta1.xlsm").Worksheets("Plan1").Range("A1"), de qualquer componente se referenciará à célula A1 da planilha A1 da pasta de trabalho Plan1. Onde você escreve o código independe...


"Eu entendo Pasta de Trabalho como Diretorio"

A terminologia é importantíssima:

  • Pasta de Trabalho: um arquivo de Excel (xlsx, xlsm, xls, etc.)
  • Planiliha: uma "aba" de uma pasta de trabalho
  • Diretório: um caminho do Windows Explorer que possui arquivos.

Infelizmente, há muita confusão nisso. A própria microsoft chama pasta de trabalho de planilha, em alguns casos...

E a tal da "pasta" do windows explorer confunde com a "pasta de trabalho", do Excel... complicado =\


"

ThisWorkbook se refere à pasta de trabalho que está executando o código

e a mesma coisa que dizer ThisWorkbook se refere ao arquivo que esta executando o codigo?"

Correto!


"se tenho os codigos escritos no arquivo cartao pontos e tiver que ativar o arquivo dados(Workbooks("dados"), e do arquivo dados quiser voltar ou acessar celulas do arquivo cartao ponto em vez de escrever (Workbooks("cartao ponto")) e a mesma coisa que escrever ThisWorkbook que vai entender como sendo o arquivo cartao ponto onde estao escritos os codigos?."Correto!


Esta resposta foi útil?

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-26T02:55:59+00:00

Tadao, a indicação da Lucíola está correta. Você provavelmente recebeu dicas de pequenas rotinas VBA de mim ou no máximo mais duas pessoas. O melhor lugar para tirar dúvidas VBA é no link que ela te passou mesmo. Poste no canal mostrado abaixo:

Bom, respondendo sua pergunta, não é possível mudar as características de um inputbox dessa forma como deseja. Se quiser personalizar algo desse nível, sugiroq ue você crie um formulário (UserForm) e faça ele se passar por uma caixa de mensagem / diálogo.

O máximo que você pode fazer com a função nativa é alterar o parâmetro Buttons utilizando as partes de enumerações como vbInformation, vbYesNo, etc. para modificar botões ou ícones.

Esta resposta foi útil?

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2015-05-22T12:10:55+00:00

Olá, TadaoKano! Tudo bem?

Bem-vindo à Comunidade da Microsoft.

Para este cenário com relação à Projeto VBA, sugiro postar sua dúvida na comunidade disponível para desenvolvedores:

Para mais informações, acesse Developer Network

Espero ter ajudado.

Até mais,

Esta resposta foi útil?

0 comentários Sem comentários

17 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2015-05-28T09:34:41+00:00

    Referir somente a Range("A1") pode ser perigoso. Range("A1") é equivalente, no VBA, a ActiveSheet.Range("A1"). Se você quiser que seja A1 de uma planilha específica, terá que escrever Worksheets("Sheet1").Range("A1"). Mas o perigo não pára por aí. Se você tiver duas pastas de trabalho abertas, Worksheets("Sheet1").Range("A1") é equivalente a ActiveWorkbook.Worksheets("Sheet1").Range("A1"). Então, uma dica seria utilizar o objeto ThisWorkbook. A diferença do ThisWorkbook para o ActiveWorkbook é que o ThisWorkbook se refere à pasta de trabalho que está executando o código, não importando qual pasta de trabalho está ativa.

    Mas então você poderia reclamar que é moroso escrever esse tanto para representar uma célula. Por exemplo:

    ThisWorkbook.Worksheets("Sheet1").Range("A1") = ThisWorkbook.Worksheets("Sheet1").Range("A1") + 1

    É um código para adicionar 1 unidade à uma célula determinada. Muito ruim. O que programadores fazem é usar variáveis para representar objetos. Por exemplo:

    Dim ws as Worksheet

    Set ws = ThisWorkbook.Worksheets("Sheet1")

    ws.Range("A1") = ws.Range("A1") + 1

    O código fica melhor de ler, entender e fazer manutenção.


    O ThisWorkbook que você vê no Project Explorer não tem a ver com o ThisWorkbook que uso nos exepmolos do código acima. Favor não confundir.

    Bom Dia Felipe.

    Obrigado pelas ricas explicacoes proporcionadas que para mim sao muito importante para comecar com os pes em piso firme do que em piso falso, senao um dia se tiver um programa meio grande, poderia ficar perdido por falta de bases fundamentais.

    Entendi bem quando voce diz que se escrever so o Range("A1"), por exemplo em This Workbook ou Module(do editor Project Explorer), ela vai significar que eh o Range("A1") do Sheet ativo,certo? (por favor corrija-me se estou interpretando errado), mas se eu escrever o mesmo Range("A1") numa Sheet(do editor Project Explorer), ela so funcionar se essa sheet estiver ativa,nao e? em outras palavras o Range("A1") escrito numa Sheet1(do editor Project Explorer), so vai funcionar no Sheet1 enquanto se escrever o Ranage(A1") num Module ou This Workbook(do editor Project Explorer) vai funcionar em qualquer Sheet, desde que ative o Sheet que queira que ela funciome,certo?

    Eu entendo Pasta de Trabalho como Diretorio, e quando voce fala 

    Se você tiver duas pastas de trabalho abertas,

    e mesma coisa que dizer  Se tivesse dois arquivos de Diretorios(Pastas) diferentes  abertos?

    E quando voce diz  

    ThisWorkbook se refere à pasta de trabalho que está executando o código

    e a mesma coisa que dizer ThisWorkbook se refere ao arquivo que esta executando o codigo?

    ou sera que tem jeito de gravar os codigos no Diretorio como costuma gravar os arquivos no diretorio?

     Desculpe-me Felipe, essas duvidas estao surgindo por eu estar muito tempo fora do Pais.Entendo Workbook como sendo um arquivo Excel, Workbook("book1") seria um arquivo excel com nome book1.

     A diferença do ThisWorkbook para o ActiveWorkbook é que o ThisWorkbook se refere à pasta de trabalho que está executando o código

    Quanto a sua explicacao acima, penso que entedi bem a diferenca, para ver se entendi mesmo, por exemplo se tenho os codigos escritos no arquivo cartao pontos e tiver que ativar o arquivo dados(Workbooks("dados"), e do arquivo dados quiser voltar ou acessar celulas do arquivo cartao ponto em vez de escrever (Workbooks("cartao ponto")) e a mesma coisa que escrever ThisWorkbook que vai entender como sendo o arquivo cartao ponto onde estao escritos os codigos?.

    O ThisWorkbook que você vê no Project Explorer não tem a ver com o ThisWorkbook que uso nos exepmolos do código acima. Favor não confundir.

    Entendi bem o que voce esplanou, ou seja o ThisWorkbook do codigo significa o Arquivo que o codigo esta escrito,certo?

    Mas a minha Duvida principal que postei no Forum e sobre o ThisWorkbook, Module, Sheet do editor de Project Explorer em onde escrever os codigos, pois voce dando dois cliques em ThisWorkbook aparece a janela para escrever os codigos, assim como em Module ou Sheet.

    Nao sei se consegui transmitir as minhas duvidas, mas mais uma vez ficarei grato se puder me esclarecer e desde ja agradeco

    Tadao

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2015-05-28T08:03:14+00:00

    Todo código que você quer executar intencionalmente, através de uma ação sua - como apertar um botão ou pressionar a tecla F5 - deve ser colocado em Módulos.

    Se você quiser que um código execute quando você alterar uma célula de uma planilha (por exemplo), deverá colocar o código num desses objetos que no seu caso estão nomeados como SheetN. Se você quiser que um código execute quando você, por exemplo, abrir uma pasta de trabalho, o codigo deverá ficar em ThisWorkbook.

    Em outras palavras, se quiser que um código responda a eventos, o seu código deve ser colocado no objeto desejado. Se quiser que ele seja acionado através de um botão ou explicitamente pela tecla F5 ou Alt+F8, coloque num módulo.

    Obviamente, o objeto Worksheet aceita diferentes eventos dos Workbook. Para ver uma lista dos eventos de Worksheet, dê dois cliques num dos Sheet e faça a seleção como fiz:

    O assunto de eventos é bem rico. No entanto, estou percebendo, no seu caso, que todo seu código deve residir em módulos, e não em classes dos objetos Worksheet ou Workbook.

    Bom Dia Felipe.

    Desculpe eu ser meio insistente devido ao meu pouco conhecimento mas voce disse que para executar com F5 ou botao, deve colocar os codigos no Module, mas o mesmo codigo que voce postou, colei em Sheet1(sheet1) do arquivo cartao ponto e tanto o botao que coloquei no arquivo cartao ponto como o F5 esta funcionando como abaixo anexado.Nao vi a diferenca em escrever no Sheet ou Module, sera que e para alguma precaucao?(Desculpe, o meu Excel esta com menu em japones mas os codigos sao os mesmos).

    Quando voce diz Se você quiser que um código execute quando você alterar uma célula de uma planilha (por exemplo) 

    Ainda nao fiz codigo parecido mas e muito interessante,mas ja fiz um codigo que dando dois clics muda a cor da celula, e esse codigo eu escrevi(nao sei porque) no sheet que eu queria que executasse. Mas entao se eu tivesse escrito os mesmos codigos no Module ou This Workbook, essa macro iria funcionar em qualquer sheet desse workbook que esteja ativa?(Por favor me corrija se estou falando coisa errada).

    Quanto a Se você quiser que um código execute quando você, por exemplo, abrir uma pasta de trabalho, o codigo deverá ficar em ThisWorkbook.

    Ja fiz um codigo que ao abrir uma pasta execute automaticamente, e esse codigo como os outros coloquei tudo em This Workbook, mas se tivesse escrito em Module nao funcionaria? Ainda nao peguei direito a diferenca de encrever em Module ou This Workbook.

    Desde ja agradeco o suporte que voce esta me proporcionando.

    Tadao

    Esta resposta foi útil?

    0 comentários Sem comentários