VB.NET, VBA, VBScript C#, C++ - C++, F#

Member function typical form for class C:
Default constructor C::C();
Destructor C::~C();
Copy constructor C::C (const C&);
Copy assignment C& operator= (const C&);
Move constructor C::C (C&&);
Move assignment C& operator= (C&&);
The error occurs because of the As Object clause. Unlike VBA, VBScript has only one data type — Variant, so you don't specify the data type when declaring a variable. Remove the As Object clauses and the script should work fine:
<!doctype html><meta http-equiv="x-ua-compatible" content="IE=10"><script type="text/vbscript">
msgbox "Vbscript"

Excel is stupid
 - you can't put multiple links in the same cell 
 - you can't put images(only links) in a cell, although you can attach it as a comments background
 - it is only scriptable with
   - VBA, VB.NET, C++, Powershell
   - Mathematica
   - http://xlwings.org/
   - https://datanitro.com/pricing

 - PMT - http://www.techonthenet.com/excel/formulas/pmt.php

Reading Excel with Python


Excel Solver
Google Docs JS | Microsoft Office VisualBasic | Microsoft Office Online 

Dim 'stands for Dimensions

f2 - Object Browser
.Cells(0,0) ' -1 -1 cell
Named Ranges Excel allows for stuff like Sum(Students)

https://msdn.microsoft.com/en-us/library/22x2chfx.aspx VB.NET Only

Access macro actions represent only a subset of the commands available in VBA.

Redim Preserve

Stored array   | A1:A2
Array constant | INDEX({1,2,3},1)

VBA array      | Dim a: a = Array("1", "2", "3"): a(0)

Dim Arr() As Variant
Arr = Range("A1:B10")
Dim R As Long
Dim C As Long
For R = 1 To UBound(Arr, 1) ' First array dimension is rows.
    For C = 1 To UBound(Arr, 2) ' Second array dimension is columns.
        Debug.Print Arr(R, C)
    Next C
Next R

VBA: Visual Basic for Applications Different Versions
  			VSTO: Visual Studio Tools for Office
  			VSTA: Visual Studio Tools for Applications
  			VS.NET: Visual Studio.NET – currently version 2003. 2005 due next month.
  			IDE: Integrated Development Environment (in Excel, this is the visual basic editor)

F# Hello World
open System

let main argv = 
    printfn "Hello World" 
    Console.ReadLine() |> ignore


Mathematica  Python/ASP.NET     Excel VB
C# Mathematica NETLink
Symbolic Mathematica
MyClass o = new My Class(args); o = NETNew["MyClass",args]; o= new["MyClass",args]
o.method(args); o@MethodName[args]; o=;
o.prop = 1; val = obj.prop; o@prop = 1; val = o@prop;
MyClass.StaticMethod(args); MyClass`StaticMethod[args];
MyClass.StaticPropertyOrField = 1;
value = MyClass.StaticPropertyOrField;
MyClass`StaticPropertyOrField = 1;
value = MyClass`StaticPropertyOrField;
int i = 23; i = 23; i = int[23];
public[x_] := ( 
SetAttributes[public, HoldAll] 
        i = int[23]; 
        j = int[23]; 
        k = object[0]; 
        s = string["hello" + " world"]; 
        Console@WriteLine["Hello World"]; 
        System@Math@Pow[2.0, 32.0]; 

Me vs this
Friend vs internal - access modifiers allowing inter-class but not intra-assembly reference
MustInherit vs abstract - prevents a class from being directly instantiated, and forces consumers to create object references to only derived classes
MustOverride vs abstract - for forcing derived classes to override this method
MyBase vs base - for referring to the base class from which the current class is derived
NotInheritable vs sealed - for declaring classes that may not be inherited
NotOverridable vs sealed - for declaring methods that may not be overridden by derived classes
Overridable vs virtual - declares a method as being able to be overridden in derived classes
Shared vs static - for declaring methods that do not require an explicit instance of an object
Visual Basic.NET (.vbproj & .vb)
vbc.exe /t:exe /debug+ /optionstrict+ /out:.\HelloVB.exe HelloVB.vb
Alt+F11, Alt+I, M
Insert>Module     | Accesses macros and code
VBScript(.vbs or .vbe)
crscript wscript
Private Sub Form_Load()
  Dim x As String ' type optional
  x = "Hello World"
  MsgBox x
End Sub
Format(#1/27/1993#, "yyyy-MM-dd Hh:mm:Ss")
Function CalculateArea(Radius)
    CalculateArea = Radius * Radius * 3.14159
End Function
namespace Add_Function{
   class Program{
      static void Main(string[] args){
         int a;
         int b;
         int c;
         Console.WriteLine("Enter value of 'a':");
         a = Convert.ToInt32(Console.ReadLine());
         Console.WriteLine("Enter value of 'b':");
         b = Convert.ToInt32(Console.ReadLine());
         //why can't I not use it this way?
         c = Add(a, b);
         Console.WriteLine("a + b = {0}", c);
#include <iostream>
#include <string>
using namespace std;

class Example4 {
    string* ptr;
    // constructors:
    Example4() : ptr(new string) {}
    Example4 (const string& str) : ptr(new string(str)) {}
    // destructor:
    ~Example4 () {delete ptr;}
    // access content:
    const string& content() const {return *ptr;}

int main () {
  Example4 foo;
  Example4 bar ("Example");

  cout << "bar's content: " << bar.content() << '\
  return 0;
'Boolean, Byte, Char, Date, Decimal, Double, Integer, Long, Object,
SByte, Short, Single, String, UInteger, ULong, User-Defined(inherit
ValueType), UShort
'requires you to define variable if explicit
Option Explicit On
Dim a, b, c, d, m, n As Integer
Const MyInteger As Integer = 42
Dim x, y As Double
Dim, Set, RefBy, ByVal
//bool, byte, chair, decimal, double, float, int,
long, sbyte, short, uint, ulong, ushort int a,b,c,d,m; double x,y;
result = IIf(5 < 10, "Yes it is", "No it isn't
result = (5 < 10) ? "Yes it is" : "No it isn't"
Dim count As Integer = 0
Dim message As String
If count = 0 Then
    message = "There are no items." 
ElseIf count = 1 Then
    message = "There is 1 item." 
    message = "There are " & count & " items." 
End If)
And Or Xor Not <> = AndAlso OrElse object.ReferenceEquals(a, b) 
!object.ReferenceEquals(a, b) typeof(a) a is b(type comparison)
& |  Xor != == && Is IsNot GetType(Integer) TypeOf a Is b
For i As Integer = 0 To number - 1
    ' loop from zero up to one less than number
Exit For 'breaks out of a for loop
Exit While 'breaks out of a while loop
Exit Do 'breaks out of a do loop
For i = 0 To 2
  MsgBox i
Dim i:  i = 0   
While i <
    MsgBox i
    i = i + 1

fruits = Array("apple", "orange", "cherries")
Dim fruitnames As Variant
For Each Item In fruits
  fruitnames = fruitnames & Item & Chr(10)
MsgBox fruitnames
Public Sub OnErrorDemo()
   On Error GoTo ErrorHandler    'Dim x, y, z As Integer
   x = 50
   y = 0
   z = x / y   ' Divide by ZERO Error Raises
   ErrorHandler:    ' Error-handling routine.
   Select Case Err.Number   ' Evaluate error number.
      Case 10   ' Divide by zero error
         MsgBox ("You attempted to divide by zero!")
      Case Else
         MsgBox "UNKNOWN ERROR  - Error# " & Err.Number & " : " & Err.Description
   End Select
   Resume Next
End Sub
for (int i = 0; i < number; ++i) 
    // loop from zero up to one less than number
Dim t As New System.Threading.Thread(Sub()
    For n as Integer = 0 to 10   'Count to 10
        Console.WriteLine(n)     'Print each number
    End Sub)
Function MyMax(ParamArray agrs())

End Function
private void method(params int[] arguments) { 
    //deal with args 
//Private can be used on
// Class,Const,Declare,Delegate,Dim,Enum,Event,Function,
Public Class Employee
End Class
'Classes don't really have a syntax exactly 
Private Sub Class_Initialize()
  MsgBox "Init"
End Sub
Private Sub Class_Terminate()
  MsgBox "Terminate"
End Sub
Type Employee
    Name As String
    Salary As Double
End Type

Dim i As Employee
i.Name = "Joe Smith"
i.Salary = 40000
public class Employee{
    //Fields, properties, methods and events go here...
//Private can be used on
// Class,Const,Declare,Delegate,Dim,Enum,Event,Function,
Public Class Employee
End Class

Function Split1()
   Dim strTest As String
   Dim strArray() As String
   Dim intCount As Integer
   strTest = "Fred & Wilma & Barney & Betty"
   strArray = Split(strTest, "&")
   For intCount = LBound(strArray) To UBound(strArray)
      MsgBox Trim(strArray(intCount))
End Function
a = array("Red","Blue","Yellow")
b = join(a,"$")
Sub OptionalArgs(i As String, Optional s As String = "init") 
  'MsgBox 1
End Sub
string[] separators = {",", ".", "!",
"?", ";", ":
", " "};
string value = "The handsome, ene
 rgetic, young dog was playing with his 
smaller, more lethargic litter mate.";
string[] words = value.Split(separators, StringSplitOptions.RemoveEmptyEntries);