Como adicionar caixas de diálogo para excel macros com editor visual basic

Você pode usar a função InputBox para adicionar caixas de diálogo a seus Excel 2013 macros. Quando você executar a macro, esta função Visual Basic faz com que Excel para exibir uma caixa de diálogo de entrada onde você pode digitar qualquer título faz sentido para a nova planilha. A macro, em seguida, coloca esse texto na célula atual e formatos este texto, se é isso que você treinou sua macro que fazer a seguir.

Para ver como é fácil usar a função InputBox para adicionar interatividade a um macro de outra forma sóbria, siga os passos para converter a Companhia_Nome macro que atualmente insere o texto “Mind Over mídia” para um que realmente pede-lhe o nome que deseja entrou. A função InputBox usa a seguinte sintaxe:

InputBox (linha de [, título] [, padrão] [, xpos] [, ypos] [, helpfile, contexto])

Nesta função, apenas o pronto argumento é necessário com o resto dos argumentos sendo opcional. o pronto argumento especifica a mensagem que aparece dentro da caixa de diálogo de entrada, fazendo com que o usuário digite um novo valor (ou, neste caso, um novo nome da empresa).

o pronto argumento pode ser de até um máximo de 1.024 caracteres. Se você deseja que a mensagem pronta para aparecer em diferentes linhas dentro da caixa de diálogo, você entra na função Chr (13) e Chr (10) no texto (para inserir um retorno de carro e um avanço de linha na mensagem, respectivamente).

o opcional título argumento especifica o texto a ser exibido na barra de título da caixa de diálogo de entrada. Se você não especificar um título argumento, Excel exibe o nome do aplicativo na barra de título. o opcional padrão argumento especifica a resposta padrão que aparece automaticamente na caixa de texto na parte inferior da caixa de diálogo de entrada.

Se você não especificar um argumento padrão, a caixa de texto está vazia na caixa de diálogo de entrada.

o posx e ypos argumentos opcionais especificar a distância horizontal a partir da borda esquerda da tela para a borda esquerda da caixa de diálogo e a distância vertical entre a borda superior da tela para a borda superior da caixa de diálogo. Se você não especificar estes argumentos, o Excel centraliza a caixa de diálogo de entrada horizontal e posiciona aproximadamente um terço do caminho para baixo a tela na vertical.

o helpfile e contexto argumentos opcionais especificar o nome do arquivo de Ajuda personalizado que você colocar à disposição do usuário para explicar o funcionamento da caixa de diálogo de entrada, bem como o tipo de dados que aceita.

Como parte do processo de criação de um arquivo de ajuda personalizado para uso no sistema de Ajuda do Excel, você atribuir o tópico um número contexto apropriado ao seu conteúdo, que é então especificado como o contexto argumento para a função InputBox.

Quando você especificar um arquivo de ajuda e contexto argumento para esta função, o Excel adiciona um botão Ajuda para a caixa de diálogo de entrada personalizada que os usuários podem clicar para acessar o arquivo de ajuda personalizado na janela de ajuda.

Antes de poder adicionar a linha de código para a macro com a função InputBox, você precisa encontrar o lugar nos comandos do Visual Basic onde a linha deve ir. Para inserir o texto Mind Over mídia para dentro da célula ativa, a Companhia_Nome macro usa o seguinte comando Visual Basic:

ActiveCell.FormulaR1C1 = "Mente sobre a mídia"

Para adicionar interatividade para a macro, você precisa inserir a função InputBox em uma linha na janela código logo acima dessa ActiveCell.FormulaR1C1 declaração, como segue:

  1. Posicione o ponto de inserção na janela código no início da declaração ActiveCell.FormulaR1C1 e pressione Enter para inserir uma nova linha.

    Agora que você adicionou uma nova linha, você precisa mover o ponto de inserção até ele.

  2. Pressione a tecla seta para cima para posicionar o ponto de inserção no início da nova linha.

    Nesta linha, você quer criar uma variável que fornece o pronto argumento para a função InputBox. Para fazer isso, você indicar o nome da variável (InputMsg neste caso) seguido de sua entrada atual. Certifique-se de incluir o texto da mensagem no lado direito do sinal de igual em um par fechado de aspas duplas.

  3. Digite o seguinte código para criar a variável InputMsg na linha 8 e pressione a tecla Enter para iniciar uma nova linha 9:



    InputMsg = "Digite o nome da empresa ou título para esta planilha na caixa de texto abaixo e clique em OK:"

    Em seguida, você cria uma variável chamada InputTitle que abastece o opcional título argumento para a função InputBox. Esta variável faz com que o texto “Spreadsheet Título” aparecer como o título da caixa de diálogo de entrada. Novamente, não se esqueça de colocar o nome para a barra de título da caixa de diálogo entre aspas.

    Video: #40 - Curso de Macros e Excel VBA - Caixa de Seleção

  4. Digite o seguinte código para criar a variável InputTitle na linha 9 e pressione Enter para inserir uma nova linha 10:

    Video: Share Macros and custom functions in Excel 2010 2013 with Add Ins HD Tutorial

    InputTitle = "spreadsheet Título"

    Em seguida, você criar um nome DefaultText variável que forneceu o opcional padrão argumento para a função InputBox. Esta variável faz o texto, “Mind Over Media,” aparecem como a entrada padrão na caixa de texto na parte inferior da caixa de diálogo de entrada personalizado Nome da empresa.

    Video: Use VB script to run Excel macro

  5. Digite o seguinte código para criar a variável DefaultText na linha 10 e, em seguida, pressione Enter para inserir uma nova linha 11:

    DefaultText = "Mente sobre a mídia"

    Em seguida, você cria um CompanyName variável chamada final que especifica a função InputBox como a sua entrada (usando as variáveis ​​InputMsg, InputTitle e DefaultText que você acabou de criar) e armazena os resultados desta função.

  6. Digite o seguinte código para criar a variável SpreadsheetTitle que usa a função InputBox na linha 11:

    Video: How to Write Excel Macros via VBA

    SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)

    Finalmente, você substituir o valor, “Mind Over mídia”, na ActiveCell.FormulaR1C1 propriedade com a variável SpreadsheetTitle (cujo valor é determinado por tudo o que é de entrada na caixa de diálogo de entrada Título Spreadsheet), assim efetivamente substituindo esta constante no macro com os meios para fazer esta entrada verdadeiramente interativa.

  7. Selecione “Mind Over mídia” na linha 12 e substituí-lo com SpreadsheetTitle (sem aspas).

  8. Salve a macro editado clicando no botão Salvar na barra de ferramentas do Visual Basic e, em seguida, retornar para a planilha clicando no botão View Microsoft Excel ou pressionando Alt + F11. Em seguida, clique no botão Ocultar no grupo Janela da guia VIEW.

    Agora, você está pronto para abrir uma nova pasta de trabalho e executar a macro editada pressionando Ctrl + N.

A figura mostra a janela de código com a Companhia editado_Nome macro depois de adicionar as declarações que o tornam interativa.

A figura a seguir mostra a caixa de diálogo Título Spreadsheet em ação na planilha. Esta caixa de diálogo de entrada agora aparece automaticamente e pede-lhe para entrada sempre que você executar a versão editada e agora totalmente interativo do macro Company_Name.

Para ir em frente e entrar Mind Over mídia na célula atual e, em seguida, formatá-lo usando o resto dos comandos de macro, basta clicar em OK nesta caixa de diálogo personalizada. Para inserir e formatar o nome de outra empresa, você simplesmente digitar o nome da empresa (que substitui automaticamente Mind Over mídia na caixa de texto) antes de clicar em OK.


Publicações relacionadas