# Intentando controlar puerto COM con Excel



## Meta (Nov 9, 2009)

Hola:







 Quiero lograr comunicar mediante el Excel 2007 (o con Calc del openOffece gratuito) recibir o enviar tramas de byte al puerto serie. Enviar tramas de byte puede ser un mensaje de texto, también al recibir.

 He investigado por ahí en www.google.com que directamente no se puede hacer al puerto serie. Pero me he informado que con Visual Studio .net 2008/2010 se puede crear un plugins, Add-on o como se llame bajo para el Excel.

*1-* ¿Se puede programar con cualquier lenguaje Visual Basic .net o Visual C# para hacer un plugins para Office Excel 2007? Sólo tiene que controlar el puerto serie, esa es la programación que quiero saber si es posible hacerlo en realidad.

*2-* ¿Cómo se programa o dónde hay buenos tutoriales básicos para programar un plugins sobre el puerto serie con C# o VB .net 2008? El tutorial es básico como empezar a aprender hacer tu primer plugins al Excel, cómo usarlo una vez acabado y como activarlo cuando se lo pases a un amigo y lo pruebe sin tener Visual Studio instaldo.

 He hecho un programa sobre controlar el puerto serie bajo C# _(gracias a este foro)_ con su manual correspondiente.







```
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace PicRS232
{
    public partial class Form1_Principal : Form
    {
        public Form1_Principal()
        {
            InitializeComponent();
            // Abrir puerto mientra se ejecute la aplicación
            if (!serialPort1.IsOpen)
            {
                try
                {
                    serialPort1.Open();
                }
                catch (System.Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }

        private void button_t_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = new byte[1];
            mBuffer[0] = 0x74; //ASCII letra "t".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }

        private void button_b_Click(object sender, EventArgs e)
        {
            byte[] miBuffer = new byte[1];
            miBuffer[0] = 0x62; //ASCII letra "b".
            serialPort1.Write(miBuffer, 0, miBuffer.Length);
        }

        private void button_a_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = new byte[1];
            mBuffer[0] = 0x61; //ASCII letra "a".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }

        private void button_l_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = new byte[1];
            mBuffer[0] = 0x6C; //ASCII letra "l".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }

        private void button_Espacio_Click(object sender, EventArgs e)
        {
            byte[] mBuffer = new byte[1];
            mBuffer[0] = 0x20; //ASCII letra "Espacio".
            serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }
    }
}
```
Ver manual en pdf. (22 MB) 

Os dejo esto de momento por si hay personas que sepan información sobre este tema como enlaces a otras web, etc.

Por otro lado intentaré aprenderhacer cualquier plugins para Excel para luego pasar el código de arriba al formulario. A ver si hay suerte.

Puedes sugerir alguna idea de cómo deseas ver el gráfico o qué es lo que quieres mostrar realmente desde el puerto serie.

 Un coridal saludo.


----------

